我无法检查 Promise 是否在 Jest 测试中因错误而拒绝。
(Jest 20 版本后:)
test("Rejects on error", () => {
expect.assertions(1);
return expect(promiseHttpsGet(null)).rejects.toBeInstanceOf(Error);
});
Run Code Online (Sandbox Code Playgroud)
(Jest 20 之前的版本)
test("Rejects on error", () => {
expect.assertions(1);
return promiseHttpsGet(null).catch((err) => {
expect(err).toBeInstanceOf(Error);
});
});
Run Code Online (Sandbox Code Playgroud)
我已经尝试了两个版本,但 Jest 测试失败:
Expected value to be an instance of:
"Error"
Received:
[Error: connect ECONNREFUSED 127.0.0.1:443]
Constructor:
"Error"
Run Code Online (Sandbox Code Playgroud)
承诺返回函数是:
function promiseHttpsGet(url) {
return new Promise((resolve, reject) => {
https
.get(url, (response) => {
let responseBody = "";
if (response.statusCode !== 200) {
reject(response.statusCode);
}
response.setEncoding …Run Code Online (Sandbox Code Playgroud) 如何以编程方式使用jest.run()或jest.runCLI()运行所有测试?我应该用什么作为论证?
我试图找到有关它们的文档但失败了。
如果上述功能不起作用,如果我想以编程方式运行 jest 应该调用什么?
我有一个定义在的枚举types.ts:
export enum Handedness {
Left,
Right,
Both,
}
export type State = {
count: number
handedness: Handedness
}
Run Code Online (Sandbox Code Playgroud)
我有一个正在初始化的对象state.ts:
import { State, Handedness } from './types'
export const initial: State = {
count: 0,
handedness: Handedness.Both
}
Run Code Online (Sandbox Code Playgroud)
当我jest为这个项目运行测试(通过)时,state.ts生成一个错误TypeError: Cannot read property 'Both' of undefined,告诉我它Handedness在被引用时没有定义。但是我从它的模块中导出它并在我使用它之前导入它......所以它应该被定义。
我发现其他类似的问题询问未定义的枚举,但他们似乎都在询问运行时。据我所知,这是一个编译时问题。
我不知道我会在这里做错什么。我在其他地方导入其他类型没有问题。但是这个枚举根本不想工作。这里发生了什么,我该如何解决?