小编Dei*_*ity的帖子

使用反射调用带有 nil 参数的函数会导致“使用零值参数调用”恐慌

我正在尝试测试一个接受“错误”类型参数的函数。该函数在某些情况下应该会出现恐慌,我正在尝试测试场景。

然而,当我尝试使用reflect.Call一个nil值(可以传递到接受“错误”类型的函数)时,它似乎会导致出现以下消息的恐慌:

reflect: Call using zero Value argument
Run Code Online (Sandbox Code Playgroud)

我找到了以下帖子,但我未能将其集成到我的功能中。

相关围棋游乐场:http://play.golang.org/p/cYQMQ6amPH

在上面的操场中,我希望调用InvocationCausedPanic(PanicOnErr, nil)return false,但是,上述来自反射的恐慌导致了误报。

我是否可以对InvocationCausedPanic或函数进行任何修改invoke以使其工作(同时保留其测试不能接受nil作为参数的其他函数的能力 - 例如接受字符串的函数)?

也许问题在于该函数是如何调用的?

我尝试过类似InvocationCausedPanic(PanicOnErr, new(error))InvocationCausedPanic(PanicOnErr, error(nil))无济于事的事情。

感谢您的任何建议。

testing reflection go

2
推荐指数
1
解决办法
2581
查看次数

标签 统计

go ×1

reflection ×1

testing ×1