【发布时间】:2015-04-06 12:08:34
【问题描述】:
我已经检查了所有现有的堆栈溢出问题。但我找不到合适的解决方案。
public class TestAuthenticate {
private RestService rs;
private String token_actual = token1;
private Mockery context;
private Authenticate authenticate_object;
@Before
public void setup(){
context = new JUnit4Mockery() {{
setImposteriser(ClassImposteriser.INSTANCE);
}};
rs = new RestService();
}
@Test
public final void testAuthenticate() {
authenticate_object = context.mock(Authenticate.class);
context.checking(new Expectations() {
{
oneOf(authenticate_object).authenticate_method("username", "password");
will(returnValue(token1));
}
});
String token = rs.authenticate("username", "password");
System.out.println(token);
assertEquals(token_actual, token);
context.assertIsSatisfied();
}
}
这是调用实际的身份验证方法而不是模拟身份验证类。谁能告诉我我做错了什么?
public class RestService {
public string authenticate(String user, String pass){
Authenticate auth = new Authenticate();
String res = auth.authenticate(user,pass);
}
return res;
}
【问题讨论】:
-
我在任何地方都看不到您将
authenticate对象传递给任何东西。RestService应该如何得到它? -
请看我更新的代码。 Rest 服务具有调用 Authenticate 对象的身份验证方法
-
不...每次调用该方法时,您都会实例化一个新的
Authenticate。我想知道 JMock 是否有与 Mockito 等效的东西,可以在其中实际模拟新的调用。