有没有办法模拟或监视Scala对象中的方法?
object Object {
def fun(value: String) = println(value)
def main(args: Array[String]): Unit = {
fun("executed")
sys.exit(0)
}
}
我想做点什么:
spy(Object.fun)
我查看了ScalaMock
,EasyMock
,JMock
和Mockito
,但无法弄明白。
答案 0 :(得分:0)
更好的方法是不要使用Scala对象。它是不可测试的。
就像在java中一样,你应该避免使用Static,因为它无法与mock一起使用。
如果您想拥有该课程的一个实例,可以在public static IEnumerable<int> GenerateRandom()
{
var random = new Random();
while(true) { yield return random.Next(1000000,99000000); }
}
// Later...
var newValues = MyClass.GenerateRandom()
.Where(next => !currentNumbers.Contains(next))
.Distinct()
.Take(amount)
.ToList();