CallThrough注入间谍

时间:2016-08-12 13:21:47

标签: javascript angularjs jasmine

我正在做一些单元测试,我的方案如下。我有50个测试,它们对服务功能的调用必须相同,但是对于一个单独的测试如果我可以调用原始方法将会非常有用。我尝试使用and.callThrough,但它无法正常工作。我也试图超越间谍,但我不能。我做错了什么?

beforeEach(inject(function($controller, _myService_){
    spyOn(_myService_, 'getSomeData').and.callFake(function(data, params){
       return dummyData;
    });

  createController = function() {
    return $controller('MyCtrl',{
      $uibModalInstance: modalInstance,
      myService: _myService_,
      injectedData: injectedData
    });
  };
}));

这是我的测试用例。

it('My test case', function(){
  controller = createController();
  controller.myService.getSomeData = jasmine.createSpy().and.callThrough()
});

我正在使用jasmine 2.0并且该测试用例不断调用callFake函数。

感谢

1 个答案:

答案 0 :(得分:1)

private void group_control1_Click_1(object sender, EventArgs e) { new view_record().Show(); } 没有意识到间谍方法,并且没有办法知道它,调用它只会导致调用noop函数。

现有间谍可以改变间谍策略,

jasmine.createSpy().and.callThrough()