Jasmine:如何将具有上下文的方法称为参数

时间:2016-06-30 09:44:59

标签: javascript jasmine karma-jasmine jasmine-jquery

我是Jasmine的新手,任何人都可以帮我调用一个以上下文为参数的方法。

Ex:- function locationInit(context) {
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

嗯,理想情况下,我要做的是调试并找到context可以假设的所有可能值。

执行此操作后,编写测试的方式取决于您要测试的框架。

我一直在测试AngularJS代码,所以让我们以角度为例。如果我有以下服务:

var app = angular.module('myApp', [])

app.service('serviceA', function() {
  return {
    methodName: function(context) {
      return context;
    }
  }
});

我希望从methodName测试serviceA,以下内容将是我的测试用例:

describe('service: serviceA', function() {

  var serviceA;

  beforeEach(function() {
    module('myApp');
  });

  beforeEach(inject(function(_serviceA_) {
    serviceA = _serviceA_;
  }));

  describe('method: methodName', function() {
    it('should initialize some variables', function() {
      expect(serviceA).toBeDefined();
      var context = "Hello World!"
      expect(serviceA.methodName(context)).toEqual("Hello World! is the context.");
    });
  });
});

希望这有助于您理解。这是基于您在问题中提供的任何详细信息。如果您需要更多信息,请提供更多信息,例如您正在使用的框架,您要测试的内容,控制器或服务等。