scala - 使用 Scala 的 Mockito,任何匹配器都可以通过多种实现解决
问题描述
在我们的 Scala 项目中,我们使用 Mockito 进行测试。
我们遇到的一个烦人的问题是,在使用any
matcher 时,它总是存在,can't resolve symbol any
尽管它不会影响构建或运行时中的代码。
any
Mockito(2.12)中有两种实现:
def any[T](implicit evidence$11 : scala.reflect.ClassTag[T]) : T = { /* compiled code */ }
def any[T]() : T = { /* compiled code */ }
我们如何“帮助” Mockito 了解any
他应该使用什么?
解决方案
仔细检查您的build.sbt
包含
libraryDependencies += "org.mockito" % "mockito-all" % "1.10.19" % Test
并且您的测试文件中有以下导入:
import org.mockito.Matchers.any
这是一个最小的工作片段(假设 ScalaTest):
import org.scalatest.FunSuite
import org.scalatest.mockito.MockitoSugar
import org.mockito.Mockito.when
import org.mockito.Matchers.any
class CalculatorTest extends FunSuite with MockitoSugar {
test("calculator add method") {
val calcMock = mock[Calculator]
when(calcMock.add(any[Int], any[Int])).thenReturn(10)
assert(calcMock.add(7, 3) == 10)
}
}
在哪里trait Calculator { def add(a: Int, b: Int): Int }
推荐阅读
- java - 如何使来自同一类的两个 Java 对象表现不同
- javascript - 将 onclick 事件设置为空范围(CSS 中设置的图标)?
- .htaccess - 从本地主机访问服务器数据时出现 CORS 问题
- c# - 框架升级后似乎与 IIS 中的应用程序池问题相关的错误和警告
- tensorflow - 为什么在应用 vggnet 时这不太准确?
- java - 尝试运行犯罪意图后应用程序崩溃
- javascript - 这是在 redux 中实现中间件的正确方法吗?
- json - ECS任务定义容器json中的Docker动态环境变量
- google-app-engine - 在本地数据存储控制台上按类型查看多个属性
- javascript - path.basename 应用于目录?