这是我的代码:
TestViewModel.prototype.edit = function(pId, pData) {
self.modalId = '#header';
$(self.modalId).modal('show'); //error
self.id(ko.mapping.fromJS(pData).id()); //how to mock this ?
}
这是Jasmine测试用例:
it("calling edit method", function() {
var modalId = $("#cc-accessControlUserModal");
var EditData = {id:"i10060"};
spyOn($.fn, 'modal');
self.TestViewModel.edit("i10060",EditData);
});
但是,这会给我:
错误:modal()方法不存在
所以,问题是:如何在Jasmine测试用例中模拟$(element).show
和ko.mapping.fromJS
?
答案 0 :(得分:0)
这是一个较旧的问题,但我最近遇到了同样的问题。如果您使用karma运行jasmine脚本,请将bootstrap库添加到karma.config文件的files下。
files: [
'node_modules/es6-shim/es6-shim.js',
'node_modules/reflect-metadata/Reflect.js',
...
'node_modules/jquery/dist/jquery.min.js',
'node_modules/jquery-mask-plugin/dist/jquery.mask.js',
'node_modules/jquery-ui/ui/core.js',
'node_modules/jquery-ui/ui/datepicker.js',
//Append dependencies to this list
'node_modules/bootstrap/js/modal.js',
...
]
在我的情况下,因为我不需要整个引导程序库,所以我只包含了模态文件。
这是karma配置文档:karma doc