我有一些验证密钥的代码,它将抛出无效的密钥
validateKey(key) {
if (!this.isValidKey(key)) {
throw new Error(`Unknown preference key: ${key}`)
}
}
此方法可以正常工作,并且会引发新的错误。
后来我在try catch内调用此方法重新抛出错误
getCasePref(name) {
try {
this.config.validateKey(name)
const propertyDetails = await Services.get(
`UserProperty/${this.casename}/${this.username}/${name}`
)
const preference = this.config.deserializeValue(name, propertyDetails.propertyValue)
return preference
} catch (error) {
// Catch network or other types of errors {}
throw error
}
}
我的考试很简单
it('Expects an unknown preference to throw', () => {
const propertyName = 'unknownProp'
// Fake a server error
axiosMock.onGet('UserProperty/case1/jdoe/unknownProp').replyOnce(500)
expect(() => {
Preferences.getCasePref(propertyName)
}).toThrow()
})
玩笑的测试运行崩溃(CRA)
C:\Node\Investigations\node_modules\react-scripts\scripts\test.js:20
throw err;
^
Error: Unknown preference key: unknownProp
抛出的错误会导致测试错误,从而无法创建create-react-apps未处理异常。我的测试正在像文档所示的回调中运行,但仍然崩溃。
注意: 我确实尝试通过
来更简单地重新创建它expect(() => {
throw new Error('testing')
}).toThrow()
这按预期工作。 “方法”抛出并开玩笑地抓住它。