我以Mockito为嘲讽的Framemork。我尝试使用它模拟一些自定义类:
//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
不是零,但是我在静态块中分配的值未初始化。
虽然很高兴知道模拟和间谍之间的区别,但实际原因是在下面的编辑中。否则,查看使用Mockito时嘲笑和间谍之间有什么区别?有关差异的更多信息。
编辑:我注意到您缺少注释来启用班级的莫科托:
@RunWith(MockitoJUnitRunner.class)
public class LoginAttemptTest {
@Mock
LoginAttempt loginAttempt;
@Test
public void testObjectExistence() {
System.out.println("loginAttempt="+loginAttempt);
}
}