scala - 具有特征的模拟类

标签 scala mocking traits

是否有任何库提供用于模拟具有特征的类的工具(两者都可以是有状态的)?

简化示例:

trait T {
  var xx: List[Int] = List[Int]()
  def t(x: Int) {
    xx ::= x    //throws NPE, xx == null, even after implicit initialization
  }
}

class A extends T {
}

class Testable(a: A) {
  def bar() {
    a.t(2)
  }
}

@Test def testFoo() {
  val a: A = mock[A]
  val testable = new Testable(a)
  testable.bar()
  verify(a).t(2)
}

最佳答案

Paul Butcher 一直在研究 Borachio,一个 Scala 模拟库。它支持对特征、类、函数和对象的模拟。请参阅以下博客了解更多信息:

http://www.paulbutcher.com/2011/02/announcing-borachio-native-scala-mocking/ http://www.paulbutcher.com/2011/07/power-mocking-in-scala-with-borachio/

关于scala - 具有特征的模拟类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7625902/

相关文章:

scala - 如何从 Scala 中的资源文件夹中读取文件?

scala - Scala 中 trait 中使用的抽象值有什么问题吗?

laravel - 如何在特征中配置 Laravel 模型属性?

groovy - 使用 Groovy 特征编写 Geb 页面

oop - Scala 类继承

scala - 用 Scala 将两个列表相乘的函数式风格

ruby-on-rails - 与 RSpec 的内置模拟框架相比,Mocha 有哪些优势?

unit-testing - 最小起订量,如何使用私有(private)构造函数最小起订量对象?

java - 如何解决以下 stub 是不必要的 - Mockito - Android

scala - 如何在 ScalaFX 中正确声明属性更改监听器?