Java 将静态初始化块与Mockito一起使用
我开始用Mockito作为我的mocking framemork。我尝试用它来模拟一些自定义类:Java 将静态初始化块与Mockito一起使用,java,unit-testing,testing,mockito,Java,Unit Testing,Testing,Mockito,我开始用Mockito作为我的mocking framemork。我尝试用它来模拟一些自定义类: //usage @Mock private LoginAttempt loginAttempt; 以及LoginAttest类: 但是当我调试我的测试用例时,loginattent变量是空的。我做错了什么 我在教程中看到,我应该这样做: private static LoginAttempt loginAttempt = new LoginAttempt(); 但是如果我想预先初始化一些字段值呢
//usage
@Mock
private LoginAttempt loginAttempt;
以及LoginAttest类:
但是当我调试我的测试用例时,loginattent变量是空的。我做错了什么
我在教程中看到,我应该这样做:
private static LoginAttempt loginAttempt = new LoginAttempt();
但是如果我想预先初始化一些字段值呢
编辑我的LoginAttent不为null,但我在静态块中分配的值未初始化。虽然知道Mock和Spy之间的区别很好,但真正的原因在于下面的编辑。否则,请参阅以了解有关差异的更多信息 编辑:我注意到您缺少在类上启用mockito的注释:
@RunWith(MockitoJUnitRunner.class)
public class LoginAttemptTest {
@Mock
LoginAttempt loginAttempt;
@Test
public void testObjectExistence() {
System.out.println("loginAttempt="+loginAttempt);
}
}
这似乎与莫基托无关。如果在任何一个方法中检查LoginAttest.LoginAttest.os的值会发生什么情况?什么是TEST_GLOBALS?它的拼写类似于常量,但使用起来却不像常量。@LewBloch是一个包含常量的类。@DawoodibnKareem我今天在Job之后尝试了它,这就是我要找的。我一检查就接受答案。@DawoodibnKareem您是对的,他丢失了启用mockito注释的注释RunWith。
@RunWith(MockitoJUnitRunner.class)
public class LoginAttemptTest {
@Mock
LoginAttempt loginAttempt;
@Test
public void testObjectExistence() {
System.out.println("loginAttempt="+loginAttempt);
}
}