我正在尝试模拟并尝试满足以下方法的其他条件,但是由于未被调用的预期间谍modalService.open 而出现错误
这是组件代码
更新以下行组件后。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;
}
下面是当前的单元测试用例(茉莉花)
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();
});
请让我知道我在做什么错
答案 0 :(得分:1)
将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();
});