首页 > 解决方案 > 如果参数不是字符串,期望类抛出错误?

问题描述

我正在学习 Jest。我试图测试当我创建一个类并且传递的参数不是抛出错误的字符串时。

// class.js
export default class FooClass {
    constructor(value) {
        if (typeof value !== 'string') throw new Error('Value should be a String.')
        this.value = value
    }
}

// class.test.js
import FooClass from './class'

it('should throw an Error if the value is not a String', () => {
    expect(new FooClass(123)).toThrowError('Value should be a String.')
})

Jest 可以通过这个测试,只是返回 Test failed。

标签: javascriptunit-testingecmascript-6jestjs

解决方案


问题是,我调用了一个类而不是一个函数。

// class.js
export default class FooClass {
    constructor(value) {
        if (typeof value !== 'string') throw new Error('Value should be a String.')
        this.value = value
    }
}

// class.test.js
import FooClass from './class'

it('should throw an Error if the value is not a String', () => {
    expect(() => new FooClass(123)).toThrowError('Value should be a String.')
})

现在它正在工作。谢谢你。


推荐阅读