【发布时间】:2017-03-10 10:03:15
【问题描述】:
我一直在看一些关于局部函数的文章,一句话说:
局部函数在方法内定义,在方法外不可用
那么鉴于下面的代码示例,有没有办法对square 方法进行单元测试?
int SumAndSquare(int x, int y)
{
var sum = x + y;
return square(sum);
int square(int z)
{
return z * z;
}
}
【问题讨论】:
-
通过单元测试
SumAndSquare。这就是单位(或者在这种情况下不是,因为它是私有的,但如果它是公共的,它就会是)。 -
以同样的方式对私有方法进行单元测试:你没有。您对课程的公共部分进行单元测试。
-
@AdamT 但是我支持Keith Nicholas 接受的回应:是的,不要测试私有方法.... 单元测试的想法是通过它的公共来测试单元'API'。 .我并不是说不可能执行私有方法......我甚至在早上使用反射来加热牛奶:-)
-
检查副本,即使它是关于 F# 的。 F# 从一开始就支持嵌套函数。它们非常有用,但不能替代私有方法。例如,如果嵌套函数仅由其父函数使用,为什么需要单独测试它?如果它太复杂以至于需要测试,那你可能做错了
-
我没有看到 F# 问题是有效的重复。
标签: c# unit-testing c#-7.0