我正在尝试测试一个接受“错误”类型参数的函数。该功能在某些情况下应该会恐慌,我正在尝试测试场景。
但是,当我尝试使用reflect.Call
一个nil
值(它可以传递到一个接受“错误”类型的函数中)时,它似乎会导致出现以下消息的恐慌:
reflect: Call using zero Value argument
我找到了以下帖子,但我未能将其集成到我的功能中。
https://groups.google.com/forum/#!topic/golang-nuts/apNcACpl_fI
https://groups.google.com/forum/#!topic/golang-nuts/WOUft8EZQ1I
相关围棋游乐场:http : //play.golang.org/p/cYQMQ6amPH
在上面的操场上,我希望调用InvocationCausedPanic(PanicOnErr, nil)
return false
,但是,上述来自反射的恐慌导致误报。
我可以对InvocationCausedPanic
或invoke
函数进行任何修改以使其工作(同时保留测试其他不能nil
作为参数接受的函数的能力 - 例如接受字符串的函数)?
也许问题在于如何调用函数?
我已经尝试过类似InvocationCausedPanic(PanicOnErr, new(error))
或InvocationCausedPanic(PanicOnErr, error(nil))
无济于事的事情。
感谢您的任何建议。
相关分类