在Jasmine中测试回调方法的功能
Test a callback method's functionality in Jasmine
我有一个服务如下。
InvService(...){
this.getROItems = function(cb){
$http.get('url').success(cb);
}
}
使用上述参数的控制器之一:
var roItems = [];
InvService.getROItems(function(res){
roItems = res.lts.items;
});
在Jasmine中,我想测试roItems
是否被分配了响应中的值。我怎样才能做到这一点呢?
我建议您对服务和控制器分别进行测试。如果要测试是否分配了roItems
,则需要测试控制器。然后,您可以模拟您的服务,因为它与控制器测试无关,并使其返回您想要的任何内容。你需要这样做:
describe('my awesome test', function() {
it('my awesome test block',
inject(function(InvService, $controller) {
//This mocks your service with a fake implementation.
//Note that I mocked before the controller initialization.
spyOn(InvService, 'getROItems').and.callFake(function(cb){
var resultFake = {
lts: {
items: "whatever you want"
}
}
cb(resultFake);
});
//This initializes your controller and it will use the mocked
//implementation of your service
var myController = $controller("myControllerName");
//Here we make the assertio
expect(myController.roItems).toBe("whatever you want");
}
)
});
相关文章:
- 有没有一种方法可以修改在使用javascript的媒体功能的媒体查询下创建的样式
- 使用多功能框在 chrome 扩展程序中包含内联自动填充功能的任何方法
- 基本阵列构造的功能方法
- AngularJS控制器之间共享代码/方法/功能
- 制作预制响应功能的最佳方法是什么
- 在触摸屏上实现<缩写>型功能的最干净方法
- 自动排序方法以附加功能
- 识别浏览器 HTML5 功能的推荐方法
- 将javascript方法功能分组到javascript“类”中
- 使用无状态功能组件与调用方法有什么区别
- JS扩展方法的功能
- javascript:在页面加载后执行该功能的最佳方法
- 通过SWT浏览器/ SWT浏览器功能从GWT应用程序调用Java方法
- 处理所需和可选功能参数的推荐方法
- 调用自定义API方法的功能
- 有没有更有效的方法来处理重复的功能
- 这是对象方法的内在功能
- 编辑JSON对象-寻找更好的功能方法
- 是否有任何JavaScript方法可以复制oracle的ADD_MONTH()功能?
- jQuery点击功能不同方法