我正在使用 Mockito 进行单元测试,因此,看起来我能够使用 @InjectMocks
和 @Mock
注释注入(inject)某些对象。我假设我可以为对象类型 Boolean
s
但是,我似乎无法让它为原始 boolean
工作。我该怎么做呢?或者什么框架允许这样做? (我实际上在做一个 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
来访问此 boolean 值;因为这会将状态可变性暴露给外界?
最佳答案
如果存在控制反转(@Autowired/@Value/@Resource),反射就很容易了。
@Before
public void init() {
Field f = myMethCooking.getClass().getDeclaredField("mCanCookPureCrystal");
f.setAccessible(true);
f.set(myMethCooking, false);
}
关于java - 如何优雅地依赖注入(inject)原始 boolean 值进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24296911/