在模拟类scala中初始化变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在模拟类scala中初始化变量相关的知识,希望对你有一定的参考价值。

我正在为akka actor模型实现编写单元测试。系统包含需要初始化的类和特征。我的问题在于测试方法。当我模拟一个类的必需参数时,它会删除intelij编译器错误,但是所有变量都设置为null。

我试图使用

         when(mock.answer).thenReturn(42)

并直接分配变量

        val mock.answer = 42

以上两种通过编译错误。 “何时”无法识别并直接为值分配案例运行时错误。

任何见解都会非常感激。

答案

我不确定我是否正确理解了您的问题,但请尝试下面的自包含代码段,如果不够清楚,请告诉我:

import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import org.scalatest.mockito.MockitoSugar
import org.scalatest.{FunSuite, Matchers}
import org.mockito.Mockito.when

@RunWith(classOf[JUnitRunner])
class MyTest extends FunSuite with Matchers with MockitoSugar {

  trait MyMock {
    def answer: Int
  }

  test("my mock") {
    val myMock = mock[MyMock]
    when(myMock.answer).thenReturn(42)

    myMock.answer should be(42)
  }
}

以上是关于在模拟类scala中初始化变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Scala 中模拟“赋值一次”变量?

大数据开发-Scala 下划线的多种场景

Programming In Scala笔记-第二三章

为什么我的scala代码有些错误?

Scala基础

Scala 占位符在REPL和Eclipse/IDEA中初始化变量问题