我开始使用Mockito作为我的嘲弄框架。我尝试用它来模拟一些自定义类:
//usage
@Mock
private LoginAttempt loginAttempt;
和LoginAttempt
类:
public class LoginAttempt {
private static LoginAttempt loginAttempt;
static {
loginAttempt = new LoginAttempt();
loginAttempt.setOs(TEST_GLOBALS.OS);
loginAttempt.setBrowser(TEST_GLOBALS.BROWSER);
loginAttempt.setDevice(TEST_GLOBALS.DEVICE);
loginAttempt.setOsVersion(TEST_GLOBALS.OS_VERSION);
loginAttempt.setBrowserVersion(TEST_GLOBALS.BROWSER_VERSION);
}
...
但是当我调试我的测试用例时,loginAttempt
var是空的。我做错了什么?
我在教程中看到,我应该做这样的事情:
private static LoginAttempt loginAttempt = new LoginAttempt();
但是如果我想预先初始化一些字段值呢?
编辑我的loginAttempt
不为空,但我在静态块中指定的值未初始化。
答案 0 :(得分:1)
虽然了解Mock和Spy之间的区别很好,但真正的原因在于下面的编辑。否则请参阅What is the difference between mocking and spying when using Mockito?以获取有关差异的更多信息。
编辑:我注意到你缺少注释以在类上启用mockito:
@RunWith(MockitoJUnitRunner.class)
public class LoginAttemptTest {
@Mock
LoginAttempt loginAttempt;
@Test
public void testObjectExistence() {
System.out.println("loginAttempt="+loginAttempt);
}
}