角度/茉莉花测试 - 如何存根构造函数和属性

时间:2016-10-16 11:27:11

标签: angularjs jasmine karma-jasmine

在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'
    }
}

1 个答案:

答案 0 :(得分:0)

jasmine.createSpy返回函数和函数,就像任何其他对象都可以拥有属性一样。只要您不覆盖Jasmine使用的属性,如andcalls,就可以安全地为创建的间谍函数添加属性:

var mockNotification = jasmine.createSpy('Notification').and.returnValue('returned value'); mockNotification.permission = 'granted'; window.Notification = mockNotification;