如何测试中止功能?

时间:2018-01-01 10:31:33

标签: javascript reactjs unit-testing jestjs

通过返回来测试函数是否被中止的正确方法是什么?

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
  // ??
})

2 个答案:

答案 0 :(得分:1)

  

通过返回来测试函数是否被中止的正确方法是什么?

你唯一能做的就是:

  1. 让函数根据代码路径返回不同的值,并测试返回值。 (您显示的函数在任一路径上都没有返回值,因此调用它的结果为undefined,但如果doing any stuff包含return somethingsomething保证不是undefined,你可以测试它。)

  2. 测试该功能的任何副作用。

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

答案 1 :(得分:0)

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

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

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