我试图模拟并尝试满足以下方法的其他条件,但我得到错误,因为预期间谍modalService.open没有被调用
这是组件代码
更新下面的行component.isError = true;
突出显示If块未出现,但仍然存在错误
public importDeals(upload, list) {
this.fileName = '';
let ngbModalOptions: NgbModalOptions = {
backdrop : 'static',
keyboard : false,
windowClass: 'custom-class'
};
if (!this.isError) {
this.uploadModalRef = this.modalService.open(upload, ngbModalOptions);
}
this.tempContingency = list;
}
以下是目前的单元测试用例(Jasmine)
it('should import deals', () => {
// component.importDeals;
// expect(component.importDeals('upload','list')).toBeUndefined();
component.importDeals;
component.uploadModalRef = jasmine.createSpyObj('uploadModalRef', ['close']);
let mockOptions: NgbModalOptions = {
backdrop : 'static',
keyboard : false,
windowClass: 'custom-class'
};
const mockConfirm = 'confirm-template';
component.importDeals(mockConfirm,'');
expect(modalService.open).toHaveBeenCalledWith(mockConfirm, mockOptions);
});
it('should not import deals', () => {
component.importDeals;
component.modalService = jasmine.createSpyObj('modalService',['open'])
const mockConfirm = 'confirm-template';
component.importDeals(mockConfirm,'');
expect(modalService.open).not.toHaveBeenCalled();
});
请告诉我这里我做错了什么
将isError
的值设置为true,否则if将始终执行。
it('should not import deals', () => {
component.importDeals;
component.modalService = jasmine.createSpyObj('modalService',['open']);
component.isError = true; // <- this line
const mockConfirm = 'confirm-template';
component.importDeals(mockConfirm,'');
expect(modalService.open).not.toHaveBeenCalled();
});