【发布时间】:2019-02-09 15:36:54
【问题描述】:
我有一个返回 Either[Exception, String] 的方法
class A {
def validate(a: Any) = {
case a: String => Left(...some.. exception)
case a: Any => Right(a)
}
}
class B(a: A) {
def callValidate(any: Any) = {
a.validate(any)
}
}
现在我为 B 类编写测试并验证存根方法
class BTest {
val param: Any = "22"
val a = mock[A]
(a.validate _).expects(param).returning(....someValue...) // . this value should be Right(....) of either function.
}
是否有可能以这种方式存根返回 Either 函数的 Right(.....) ?
【问题讨论】:
-
你为什么使用
Any? -
这只是一个例子。它可以是任何东西。
-
你不能直接说
(a.validate _).expects(param).returning(Right("a"))吗? -
你可以在不使用 mock[A] 的情况下做到这一点,只需执行 val r= new A(a:Any){ override validate(a:Any) return Right(a) } 然后你可以使用它来断言值。
-
即使举个例子,也不推荐
Any
标签: scala scalatest stub either scalamock