我刚开始使用 Jasmine,并且能够很好地使用 Html 中的 SpecRunner。然而,当我配置 Karma 时,我遇到了一个差异:
describe('Calculator', function(){
var obj;
beforeEach(function(){
//initialize object
obj = new Object();
this.addMatchers({
toBeFive: function () {
return {
compare: function (actual, expected) {
return {
pass: actual === 5,
message: actual + ' is not exactly 5'
}
}
};
},
这段代码在 SpecRunner.html 中不起作用:
this.addMatchers({
相反,我不得不使用这个:
jasmine.addMatchers({
这是包含 specrunner 的内容:
<!-- libs... -->
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/boot.js"></script>
<!-- source files here... -->
<script type="text/javascript" src="../../calculator/calculator.js"></script>
<!-- test files here... -->
<script type="text/javascript" src="spec/calculator/calculator-test.js"></script>
我得到的错误是:
TypeError: Object #<Object> has no method 'addMatchers'
请注意,Karma 不会引发任何错误,但如果我使用 jasmine.addMatchers({ 它会引发错误。
最佳答案
如果你在安装 karma 之后运行 npm install karma-jasmine@~0.2.1
这将使用正确的 jasmine 版本(karma 仍然没有更新以默认安装正确的版本作为新版本适配器仅在几天前发布)
关于javascript - Jasmine 2.0 SpecRunner 与 Karma,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20884438/