Jasmine 2.0 SpecRunner vs Karma

Dal*_*rzo 15 javascript jasmine karma-runner

我刚开始使用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'
                        }
                    }
                };
            },
Run Code Online (Sandbox Code Playgroud)

这段代码不适用于SpecRunner.html:

 this.addMatchers({
Run Code Online (Sandbox Code Playgroud)

相反,我不得不使用这个:

 jasmine.addMatchers({
Run Code Online (Sandbox Code Playgroud)

这包括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>
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

TypeError: Object #<Object> has no method 'addMatchers'
Run Code Online (Sandbox Code Playgroud)

请注意,Karma没有错误但是如果我使用jasmine.addMatchers({确实如此.

whe*_*hys 10

如果你npm install karma-jasmine@~0.2.1在安装业力后运行,这将使用正确的茉莉花版本(由于新适配器仅在几天前发布,因此默认情况下仍未更新karma以安装正确的版本)

  • 6个月后它默认仍提供0.1.5 ...感谢您的提示! (5认同)