当前位置: 首页 > 知识库问答 >
问题:

做一个笑话测试失败的任何错误抛出?

尉迟远
2023-03-14

我怎样才能使jest测试在任何抛出的错误上失败?

我试了一下,但还没有弄清楚语法。

test('getArcId => Error', async () => {
    await expect(client.getArcId('skynet')).rejects.toThrow();
});

我收到错误消息

getArcId getArcId=&>;错误

expect(received).rejects.ToThrow()

接收的函数未引发

但是下面的测试通过了,所以我要测试的函数确实抛出了(至少在我对抛出含义的最好理解下是这样的):

test('getArcId => Error', async () => {
    await client.getArcId('skynet').catch(e => 
        expect(e.message).toBe('Command failure')
    );
});

共有3个答案

孟茂学
2023-03-14
describe('getArcId()', () => {
  it('should throw an error', async () => {
    try {
      await client.getArcId('skynet');
    } catch (e) {
      expect(e).toStrictEqual(Error('No command provided to proxy.'));
    }
  });
});
百里星纬
2023-03-14

要使Jest异常处理按预期工作,请向其传递一个匿名函数,如:

test('getArcId => Error', async () => {
    await expect(() => client.getArcId('skynet')).rejects.toThrow();
});

来自jest文档

test('throws on octopus', () => {
  expect(() => {
    drinkFlavor('octopus');
  }).toThrow();
});

请注意匿名函数。是的,这让我有过几次:)

朱高丽
2023-03-14

我无法使 工作,但这样做测试是可行的;

it('throws on connection error', async () => {
    expect.assertions(1);
    await expect(nc.exec({ logger: true }))
    .rejects.toEqual(Error('No command provided to proxy.'));
});

如果我拒绝的只是一个信息;

.rejects.toEqual('some message');
 类似资料:
  • 我正在实现开玩笑来测试我的React应用程序,并在我的实用程序函数上设置了一个简单的测试,但我得到了错误: 错误:您的测试套件必须至少包含一个测试。 我已经检查了我的实现,我认为一切都是正确的-有人能看一下我吗? 测试和函数的文件结构如下 如下所示: 和: 然后在我的package.json脚本中有,但出现以下错误: 谢谢大家:) 注意:是中的一个输入错误,但在修复后,我收到一个新错误:

  • 这是我第一次体验前端测试。在这个项目中,我使用Jest快照测试并得到一个错误。 我查阅了Jest文档,找到了“手动模拟”部分,但我还不知道如何做到这一点。

  • 问题内容: 这是我的第一个前端测试经验。在这个项目中,我正在使用jest快照测试,并且组件内部出现错误。 我浏览了一些有趣的文档,发现“手动模拟”部分,但是我还不知道该如何做。 问题答案: 开玩笑的文档现在有一个“官方”解决方法: JSDOM中未实现的模拟方法

  • 我写了500多个单元测试方法。当我发出< code>ng test命令时。它开始测试所有的500种方法。 如果任何测试用例失败,它不会停止,仍然会继续执行所有方法。所以我需要等待更多的时间来再次重新运行单元测试。 我知道我们可以通过执行来存在,然后使用命令再次重新运行单元测试。这种方式也需要太多时间。 那么,如果任何一个测试失败,是否有可能停止(不存在)单元测试?

  • 我有使用vue cli 3的vue应用程序。在安装过程中,我选择了jest作为测试框架。要运行我的单元测试,我在package.json中有一个脚本: 要运行这个我写在vs代码终端: 这将运行所有符合package.json文件jest配置部分中设置的规范的测试。 我的问题是如何只运行一个测试。我需要运行特定的命令吗?或者是否有一个vscode扩展将与此设置一起工作。

  • 我正在尝试在linux上运行mocha测试 错误:未找到测试文件:“test/”npm ERR!测试失败。详见上文。 这是我的包 使用的命令:npm install--global mocha npm i并运行我正在使用npm test的测试 项目结构: