【发布时间】:2014-06-19 00:12:24
【问题描述】:
我正在使用 Mockito 进行单元测试,因此,看起来我可以使用 @InjectMocks 和 @Mock 注释注入某些对象。我假设我可以为对象类型 Booleans 执行此操作
但是,我似乎无法让它适用于原始 booleans。我该怎么做呢?或者什么框架允许这样做? (我实际上是在一个 Android 项目上)
例如:
class MethCook {
private Laboratory mLab; // i can inject this
private Assistant mJessePinkman; // this is injectable too
private boolean mCanCookPureCrystal; // how do i access/inject this?
private void cookBlueMeth() { ... }
private void onTraumatized() {
mCanCookPureCrystal = false;
startMoppingAround();
beDepressed();
neverWantToCookAgain();
}
}
注意:优雅意味着简洁和简洁,如...我不想在 getter/setter 之上使用@VisibleForTesting 来访问这个布尔值;因为这会将状态的可变性暴露给外部世界?
【问题讨论】:
-
你为什么要注入一个布尔值?布尔值无法做任何有趣的事情。只需设置它。
-
@chrylis 如果可能的话,我不想将不必要的状态访问暴露给外部(来自其他人的意外突变)
-
在实际使用中你会如何设置这个布尔值?
-
我直接将它设置为 true 到一些私有方法,它可以做几件事。我会把这部分添加到我的问题中
标签: java android unit-testing dependency-injection