JMockit:显示关于缺少调用 1 错误的模糊错误消息
JMockit: show obscure error message about missing invocation 1 to error
我必须测试 class UserAdmin
,它依赖于数据库 class。我模拟了数据库 class 来测试 UserAdmin
class。数据库 class 有一个方法 isAdmin()
决定用户是否是管理员。 UserAdmin
class 有一个名为 removeUser()
的方法,我收到此错误。如果用户是管理员,removeUser()
方法不允许删除用户
以下是我看到此错误的代码。
@Test
//testing remove user method of UserAdmin - remove Admin
public void testremoveUserAdmin() throws SQLException{
new Expectations() {{
dBConnection.isAdmin("admin");
times=1;
result = true;
}};
assertEquals(false,userAdmin.removeUser("admin"));
当我输入上面的 assertEquals()
时,它给出了一个缺少的调用错误,但是当我在断言中用 true 替换 false 时,它说预期是 true 但它是 false。我不确定为什么会出现此错误。类似方法 isAdmin()
的类似代码 运行 工作正常。请帮助
在 isAdmin 方法之前应该调用另一个方法。在isAdmin方法之前调用解决问题
适合我:
public class UserAdminTest {
static class DBConnection { boolean isAdmin(String userName) { return false; } }
static class UserAdmin {
boolean removeUser(String userName) {
DBConnection dbConnection = new DBConnection();
if (!dbConnection.isAdmin(userName)) {
// remove user
return true;
}
return false;
}
}
@Tested UserAdmin userAdmin;
@Mocked DBConnection dBConnection;
@Test
public void doesNotRemoveUserWhenAdmin() throws Exception {
new Expectations() {{ dBConnection.isAdmin("admin"); result = true; }};
boolean removedIt = userAdmin.removeUser("admin");
assertFalse(removedIt);
}
}
我必须测试 class UserAdmin
,它依赖于数据库 class。我模拟了数据库 class 来测试 UserAdmin
class。数据库 class 有一个方法 isAdmin()
决定用户是否是管理员。 UserAdmin
class 有一个名为 removeUser()
的方法,我收到此错误。如果用户是管理员,removeUser()
方法不允许删除用户
以下是我看到此错误的代码。
@Test
//testing remove user method of UserAdmin - remove Admin
public void testremoveUserAdmin() throws SQLException{
new Expectations() {{
dBConnection.isAdmin("admin");
times=1;
result = true;
}};
assertEquals(false,userAdmin.removeUser("admin"));
当我输入上面的 assertEquals()
时,它给出了一个缺少的调用错误,但是当我在断言中用 true 替换 false 时,它说预期是 true 但它是 false。我不确定为什么会出现此错误。类似方法 isAdmin()
的类似代码 运行 工作正常。请帮助
在 isAdmin 方法之前应该调用另一个方法。在isAdmin方法之前调用解决问题
适合我:
public class UserAdminTest {
static class DBConnection { boolean isAdmin(String userName) { return false; } }
static class UserAdmin {
boolean removeUser(String userName) {
DBConnection dbConnection = new DBConnection();
if (!dbConnection.isAdmin(userName)) {
// remove user
return true;
}
return false;
}
}
@Tested UserAdmin userAdmin;
@Mocked DBConnection dBConnection;
@Test
public void doesNotRemoveUserWhenAdmin() throws Exception {
new Expectations() {{ dBConnection.isAdmin("admin"); result = true; }};
boolean removedIt = userAdmin.removeUser("admin");
assertFalse(removedIt);
}
}