我有这样的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
?
答案 0 :(得分:1)
我不这么认为,val意味着价值。它在定义期间定义。但Autowired的东西正在使用Reflection来设置具有新值的字段,因此它被推迟。下划线_表示它根据类型将变量初始化为默认值。