gpt4 book ai didi

java - JMockit:显示有关缺少调用 1 错误的模糊错误消息

转载 作者:行者123 更新时间:2023-12-02 13:11:04 24 4
gpt4 key购买 nike

我必须测试一个依赖于数据库类的类UserAdmin。我模拟了数据库类来测试 UserAdmin 类。数据库类有一个方法isAdmin(),它决定用户是否是管理员。 UserAdmin 类有一个名为 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() 时,它给出了一个丢失调用错误,但是当我在断言中将 false 替换为 true 时,它​​说预期是 true,但它是 false。我不确定为什么会出现此错误。对于 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);
}
}

关于java - JMockit:显示有关缺少调用 1 错误的模糊错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43959053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com