Как проверить наличие сообщения об ошибке c в Mocha? - PullRequest
0 голосов
/ 01 августа 2020
import assert from 'assert';
const fn = () => { throw new Error('bar') }

describe('fn()', () => {
  it('should throw "foo"', () => {
    assert.throws(fn, Error, 'foo');
  });
});

Он (неправильно) говорит, что тест пройден:

fn()
    √ should throw "foo"
    
  1 passing (8ms)

Это неверно, потому что fn() выдает 'bar' не 'foo'. Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 01 августа 2020

Согласно docs , если вы передаете конструктор, библиотека выполняет instanceof проверку, если вы хотите проверить реквизиты, используйте объект проверки или Regex, например

assert.throws(fn, {
  name: 'Error',
  message: 'foo'
});
0 голосов
/ 01 августа 2020

Мне пришлось установить chai и использовать его assert и expect.

import chai from 'chai';
const { assert, expect } = chai;
const fn = () => { throw 'foo' }

describe('fn()', () => {
  it('should throw "foo"', () => {
    expect(fn).to.throw('foo');
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...