【问题标题】:Writing Karma + Mocha tests with both dependency injection and `done`?使用依赖注入和“完成”编写 Karma + Mocha 测试?
【发布时间】:2015-02-26 22:56:49
【问题描述】:

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

依赖注入:

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
})

【问题讨论】:

    标签: javascript angularjs karma-runner


    【解决方案1】:

    您可以将函数嵌套注入到测试函数中

    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 模块中定义的全局函数,可以在测试的任何地方使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-27
      • 2016-06-13
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      相关资源
      最近更新 更多