如何测试中止功能?

问题描述 投票:0回答:2

测试函数是否因返回而中止的正确方法是什么?

myFunction (parameter) {
  if (typeof parameter === 'object') return

  // doing any stuff
}

测试(是JS)

it('myFunction() should return if no valid parameter is passed', () => {
  // SETUP
  wrapper = shallow(<Component />)
  // EXECUTE
  wrapper.instance().myFunction(undefined)
  // VERIFY
  // ??
})
javascript reactjs unit-testing jestjs
2个回答
1
投票

测试函数是否因返回而中止的正确方法是什么?

你唯一能做的就是:

  1. 让函数根据代码路径返回不同的值,并测试返回值。 (你所显示的函数在任一路径上都没有返回值,所以调用它的结果是undefined,但是如果doing any stuff包含return something并且something保证不是undefined,你可以测试它。)
  2. 测试该功能的任何副作用。

例如,除非你提供一种了解函数内部发生的事情的方法,否则无法从外部告诉它。


0
投票

函数将始终返回 - 除非它抛出异常(正确的中止方法)。如果函数在异常时正确中止,则可以断言是否抛出了该异常。

如果您想测试方法是否对方法中的特定代码行执行。假设您有茉莉花,您可以在执行行中的对象上创建一个间谍,并使用断言测试该间谍。

否则,没有真正的方法可以通过返回来区分中止 - 除非函数预期返回某些内容并且不返回任何内容。

© www.soinside.com 2019 - 2024. All rights reserved.