通过返回来测试函数是否被中止的正确方法是什么?
myFunction (parameter) {
if (typeof parameter === 'object') return
// doing any stuff
}
测试(jestJS)
it('myFunction() should return if no valid parameter is passed', () => {
// SETUP
wrapper = shallow(<Component />)
// EXECUTE
wrapper.instance().myFunction(undefined)
// VERIFY
// ??
})
答案 0 :(得分:1)
通过返回来测试函数是否被中止的正确方法是什么?
你唯一能做的就是:
让函数根据代码路径返回不同的值,并测试返回值。 (您显示的函数在任一路径上都没有返回值,因此调用它的结果为undefined
,但如果doing any stuff
包含return something
和something
保证不是undefined
,你可以测试它。)
测试该功能的任何副作用。
,例如,除非你提供一种了解函数内部发生情况的方法,否则无法从外部告诉它。
答案 1 :(得分:0)
函数将始终返回 - 除非它抛出异常(正确的中止方法)。如果函数在异常时正确中止,则可以断言是否抛出了该异常。
如果您想测试方法是否对方法中的特定代码行执行。假设你有茉莉花,你可以在执行行中的对象上创建一个间谍,并用断言来测试间谍。
否则,没有真正的方法可以通过返回来区分中止 - 除非函数预期返回某些内容并且不返回任何内容。