【发布时间】:2014-08-27 23:41:16
【问题描述】:
我正在为不返回任何值的方法编写测试用例,例如:
func GetByNameReturnNull(serName string)
{
//Logic
}
我的测试用例文件是 myTest.go,它有两个参数,一个调用无效输入的方法,一个调用有效输入的方法。
func Test1(t *testing.T) {
GetByNameReturnNull("Invalid")
}
func Test2(t *testing.T) {
GetByNameReturnNull("valid")
}
所以,第一个测试用例将失败并抛出异常,我无法以常规方式处理它,例如,
"从返回的方法中检查错误,因为该方法根本不返回任何内容。 当我执行命令时,
$go test ./... -v
第二个测试用例不会因为第一个异常而执行。
所以在不改变基本方法(GetByNameReturnNull)中的任何逻辑来返回 err 或任何东西的情况下,有没有办法在测试用例文件本身中处理这种情况以打印
1 fail 1 pass in the output?
【问题讨论】:
-
我们是否应该假设这个
GetByNameReturnNull函数不能被修改返回错误?如果它可以创建一个错误,它应该真的返回一个。 -
我也不想推迟测试用例,它应该按顺序执行测试用例,例如 test1、test2、test3,最后如果任何测试失败,它应该返回 1 pass 2 fail,假设如果所有的测试用例都通过了,输出应该是 3 pass...
-
抛出异常 ??这不是java。不能轻易测试?代码气味!返回错误。
标签: go