Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 开玩笑地测试。测试在应该抛出时失败_Javascript_Testing_Jestjs - Fatal编程技术网

Javascript 开玩笑地测试。测试在应该抛出时失败

Javascript 开玩笑地测试。测试在应该抛出时失败,javascript,testing,jestjs,Javascript,Testing,Jestjs,所以我有一个带有select方法的类,它接受ID并返回一个承诺。我想用Jest测试它,如果没有向select()传递参数,我希望测试失败 希望你们中的一些人能引导我走上好的道路,这样我就能解决这个问题 预期行为:如果ID未通过,测试将抛出 实际行为:测试失败,结果如下 终点站 Running tests for class DB › SELECT() method tests will follow › Throws if ID is not passed expect(received).r

所以我有一个带有select方法的类,它接受ID并返回一个承诺。我想用Jest测试它,如果没有向select()传递参数,我希望测试失败

希望你们中的一些人能引导我走上好的道路,这样我就能解决这个问题

预期行为:如果ID未通过,测试将抛出

实际行为:测试失败,结果如下

终点站

Running tests for class DB › SELECT() method tests will follow › Throws if ID is not passed

expect(received).resolves.toEqual()

Received promise rejected instead of resolved
Rejected to value: [TypeError: Cannot read property 'id' of undefined]

  35 |     it("Should resolve if data.id is not passed", () => {
  36 |       const newDB = new DB();
> 37 |       expect(newDB.insert()).resolves.toEqual({});
     |       ^
  38 |     });    

  at expect (node_modules/expect/build/index.js:134:15)
  at Object.<anonymous> (05/DB.test.js:37:7)
database.test.js

it("Throws if ID is not passed", async () => {

  const dataBase = new DB();
  expect.assertions(1);
  // return dataBase.select().catch(e => expect(e).toThrow()); <--- doesn't work either
  await expect(dataBase.select()).rejects.toThrow('error');
});
it(“未传递ID时抛出”,async()=>{
const dataBase=new DB();
期望.断言(1);

//返回dataBase.select().catch(e=>expect(e).toThrow());哦,对不起。我只是不小心复制了错误的行。我现在已经修复了。我已经从终端更新了日志,所以现在应该是准确的。错误表明问题在另一个测试中,
应该解决,如果data.id未通过
。如果id未通过,它很可能是在
抛出期间记录的,因为highlig中没有等待hted代码。它应该是
wait-expect(newDB.insert()).resolves.toEqual({})
。然后需要调查该测试。
insert
未显示。如果问题仍然存在,请隔离问题并提供解决方案。
it("Throws if ID is not passed", async () => {

  const dataBase = new DB();
  expect.assertions(1);
  // return dataBase.select().catch(e => expect(e).toThrow()); <--- doesn't work either
  await expect(dataBase.select()).rejects.toThrow('error');
});