0 unit-testing jasmine angularjs karma-jasmine
我在服务中有以下代码。
function getK(k) {
return function() {
return k;
};
}
Run Code Online (Sandbox Code Playgroud)
我可以测试调用了getK
beforeEach(inject(function(FiltersService){
this.service = FiltersService;
spyOn(this.service, 'getK');
}));
it("getK should be called", function(){
var key = "TEST";
var result = this.service.getK(key);
expect(this.service.getK).toHaveBeenCalled();
expect(this.service.getK).toHaveBeenCalledWith("TEST");
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何测试内部
return function() {
return k;
}
Run Code Online (Sandbox Code Playgroud)
与茉莉花
编辑
要尝试进一步指定,请getK function
使用来填充对象,如下所示。该对象是我正在使用的库的一部分key
。我想我对如何从业力茉莉花的角度进行测试感到困惑,key
因为我的实际实现是我无法控制的库的一部分。因此,我不确定如何为内部getK函数甚至以下valid
函数编写测试,以确保正确填写对象
libObject.push({
Data: {
Name: 'test'
},
key: getK("TEST"),
valid: function() {
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
单元测试假设逐行测试代码以覆盖全部内容。
考虑到getK
作为FiltersService
方法公开,它是
expect(this.service.getK).toEqual(jasmine.any(Function));
var key = {};
var result = this.service.getK(key);
expect(result).toEqual(jasmine.any(Function));
expect(result()).toBe(key);
Run Code Online (Sandbox Code Playgroud)
在此规格中不需要间谍,因为没有什么可间谍的。
归档时间: |
|
查看次数: |
5681 次 |
最近记录: |