我是这个Mockito J-Unit测试的新手,我想测试我的createNewToken()
- 方法,但我无法理解它的逻辑。
这是我的方法:
public String createNewToken(String usertoken) {
WebToken oldToken = getTokenByUserToken(usertoken);
if (!Assert.isNull(oldToken)) {
em.remove(oldToken);
}
WebToken webToken = new WebToken();
webToken.setToken(UUID.randomUUID().toString());
webToken.setUserToken(usertoken);
em.persist(webToken);
return webToken.getToken();
}
这是我的测试方法,但我确定这是错误的:
@RunWith(Enclosed.class)
public class WebTokenPSTest extends AbstractPersistenceTest {
@InjectMocks
WebTokenPS cut;
@RunWith(MockitoJUnitRunner.class)
public static class createNewToken extends WebTokenPSTest {
@Test
public void happyPath() {
String token = cut.createNewToken("token");
String result = token;
assertThat(result).isEqualTo(token);
}
}
}
答案 0 :(得分:1)
正如我所看到的,您的方法的主要部分适用于Hibernate EntityManager。所以你应该测试这个部分,或者如果可能的话嘲笑它。
你也可以模拟getTokenByUserToken(userToket)。在这里你可以写几个案例。
所以可能的测试用例:
em.createQuery("select token t....")
。在此处验证新令牌是否仍然存在于DB