用依赖注入和`完成'编写Karma + Mocha测试?

时间:2015-02-26 22:56:50

标签: javascript angularjs karma-runner

在mocha中编写Karma单元测试的最优雅的方法是什么,它们都有依赖注入和done

依赖注入:

describe('cows', function(){
  it('farts a lot', inject(function(cow){
    // do stuff
  }))
})

完成:

describe('cows', function(){
  it('farts a lot', function(done){
    // do stuff
  })
})

如果我希望单元测试中同时提供cowdone,该怎么办?现在,这就是我正在做的事情,并且令人不满意。

beforeEach(inject(function(cow){
  this.cow = cow;
}))

it('farts a lot', function(done){
  this.cow // etc
})

1 个答案:

答案 0 :(得分:6)

您可以将函数 inject 嵌套到测试函数

it("should nested inject function into test function", function(done) {
    inject(function($timeout) {

      $timeout(function() {
        expect(true).toBeTruthy();
        done();
      }, 10);

      $timeout.flush(10);

    });    
  });

inject ngMock模块中定义的全局函数,可以在测试的任何地方使用。