gpt4 book ai didi

java - 为什么这会给我断言错误?

转载 作者:行者123 更新时间:2023-12-01 13:38:00 24 4
gpt4 key购买 nike

我有以下测试:

@Test
public void deleteUser(){

User user = new User("admin","admin");
service.createUser(user);
service.deleteUser(1);

assertTrue("Check that user is deleted: ", user.getId() < 1);

}

但它给了我断言错误。为什么我不能那样做?我创建了我的用户,然后想测试我是否能够删除新创建的用户。

我的删除方法只是从 HashMap 中删除用户。

Map<Long, User> users = new HashMap<Long, User>();
protected static long nextId = 0;

@Override
public long createUser(User user) {

user.setId(getNextId());
users.put(user.getId(), user);

return user.getId();
}

@Override
public void deleteUser(long id) {

users.remove(id);

}

有人可以向我解释一下吗?

最佳答案

您应该实现一个方法来检查用户是否存在于该类中,而不是访问您仍然拥有引用的User对象(无论它是否被删除)您的服务变量:

public boolean containsUser(long userId) {
return users.containsKey(userId);
}

然后像这样断言:

assertFalse("Check that user is deleted: ", service.containsUser(1L));

关于java - 为什么这会给我断言错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21108318/

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