angular - Angular 10:Karma Jasmine 间谍方法
问题描述
有什么方法可以在像这样被监视时重置被监视的方法:
it('unit test', () => {
document.getElementById = jasmine.createSpy().and.returnValue(document.createElement('div'));
....
})
解决方案
您可以在开始时存储原始方法,然后在测试用例完成后将其重置。
例如
it('unit test', () => {
const getElementById = document.getElementById;
document.getElementById = jasmine
.createSpy()
.and.returnValue(document.createElement('div'));
console.log(document.getElementById);
document.getElementById = getElementById;
console.log(document.getElementById);
});
日志:
LOG: function wrap() { ... }
Chrome 80.0.3987.87 (Mac OS 10.13.6): Executed 2 of 14 SUCCESS (0 secs / 0.023 secs)
LOG: function getElementById() { ... }
Chrome 80.0.3987.87 (Mac OS 10.13.6): Executed 2 of 14 SUCCESS (0 secs / 0.023 secs)
第一个日志打印getElementById
由间谍包装的方法。
第二个日志打印原始版本。
推荐阅读
- jquery - 在弹出窗口中打开链接
- sql-server - 使用 MS Access 数据库值使 SQL Server 保持最新
- azure - 在 Microsoft WSFed 应用程序登录期间收到 AADSTS700016 错误
- swift - 在这个例子中美元符号有什么作用?
- c# - 尝试在列表中打印列表时出现语法问题
- sql - 寻找有关 Oracle SQL Number DATA 的最新文档以回答规模问题
- r - 如何在另一个数据框中的特定时间范围内对按日期分组的数据框中的多个变量进行平均
- javascript - 如何使用 typescript 和 javascript 在 npm 包中导入 js
- swift - 如何将 Mapbox SDK 与 SwiftUI 集成
- azure - Azure CloudFile UploadFromFile“指定的资源名称包含无效字符”