如何测试 Mocha 中的特定错误消息?
How to test for a specific error message in Mocha?
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'
。我做错了什么?
我必须安装 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');
});
});
根据 docs,如果您传递构造函数,库将执行 instanceof
验证,如果您想检查道具,则使用验证对象或正则表达式,例如
assert.throws(fn, {
name: 'Error',
message: 'foo'
});
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'
。我做错了什么?
我必须安装 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');
});
});
根据 docs,如果您传递构造函数,库将执行 instanceof
验证,如果您想检查道具,则使用验证对象或正则表达式,例如
assert.throws(fn, {
name: 'Error',
message: 'foo'
});