怎么模拟scala val提起?

时间:2014-06-30 05:37:52

标签: java spring scala unit-testing

我有这样的scala类:

@Component
class SomeClassForTest {
  @Autowired
  implicit val type: Type = null
...
}

使用纯弹簧,此代码可以正常工作。但是当我尝试用Mockito创建测试时:

@RunWith(classOf[JUnitRunner])
class SomeClassForTest {

  @InjectMocks
  var SomeClassForTest : instance = null

  @Spy
  val type: Type = new Type()

  ...

    //in before method
    MockitoAnnotations.initMocks(this)
}

在我在课堂上编写var而不是val进行测试之前,注入模拟效果不起作用:

  @Autowired
  implicit var type: Type = null

是否可以在测试类中注入val

1 个答案:

答案 0 :(得分:1)

我不这么认为,val意味着价值。它在定义期间定义。但Autowired的东西正在使用Reflection来设置具有新值的字段,因此它被推迟。下划线_表示它根据类型将变量初始化为默认值。