有什么方法可以测试嵌套函数(最好使用 ScalaTest)?
例如,有没有办法在下面的代码中测试g()
:
def f() = {
def g() = "a string!"
g() + "– says g"
}
最佳答案
g
在 f
之外是不可见的,所以我敢说不,至少不是没有反射。
我认为测试 g
会打破单元测试的概念,无论如何,因为您不应该测试实现细节,而应该只测试公共(public) API 行为。如果 f
的测试失败,则跟踪 g
中的错误是调试过程的一部分。
如果测试 g
对您很重要,请将 g
定义为 f
之外的( protected )方法。不过,这可能会破坏您的设计。
另一个想法是在原始代码中调用 g
之后调用 assert
。这将在测试期间执行并在属性不成立时引发异常,从而导致测试失败。它也会出现在常规代码中,但可以被编译器删除,因为 assert
(和同伴)是可取消的(参见例如 here)。
关于testing - 你能在 scala 中测试嵌套函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5333298/