使用Mockito使用静态初始化块



我以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);
    }
}

相关内容

  • 没有找到相关文章

最新更新