在Jasmine中,我可以使用以下代码模拟构造函数:
window.Notification = jasmine.createSpy('Notification').and.returnValue('returned value');
我可以使用赋值操作来存储同一对象的属性:
window.Notification = {
permission: 'granted'
};
我如何做到这两点?我有以下代码我想测试:
if(Notification.permission == 'granted'){
var notificationObject = new Notification('new message', {
body: 'body of message'
}
}
答案 0 :(得分:0)
jasmine.createSpy
返回函数和函数,就像任何其他对象都可以拥有属性一样。只要您不覆盖Jasmine使用的属性,如and
或calls
,就可以安全地为创建的间谍函数添加属性:
var mockNotification = jasmine.createSpy('Notification').and.returnValue('returned value');
mockNotification.permission = 'granted';
window.Notification = mockNotification;