在默认的测试环境为
Jest是一个类似浏览器所提供的环境
jsdom。
jsdom实现了实际浏览器将提供的大部分功能(包括全局
window对象),但并未实现所有功能。
专门为这种情况下,
jsdom没有实现
window.alert,而是抛出
Error时,它被称为可以在源代码中可以看出这里。
只要您知道代码为什么要启动,
alert并且知道测试除了之外
Error还可以正常运行,那么您可以
Error通过为空提供以下实现来抑制
window.alert:
test("login api resolves true", () => { const jsdomalert = window.alert; // remember the jsdom alert window.alert = () => {}; // provide an empty implementation for window.alert return expect(AuthManager.login("test", "test")).resolves.toMatchObject( expect.objectContaining({ accessToken: expect.any(String), email: expect.any(String), expiresIn: expect.any(Number), refreshToken: expect.any(String), userFullName: expect.any(String), userId: expect.any(Number) }) ); // SUCCESS window.alert = jsdomalert; // restore the jsdom alert});
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)