gpt4 book ai didi

java - 测试用例以确保数据无法加载

转载 作者:行者123 更新时间:2023-11-30 06:18:51 30 4
gpt4 key购买 nike

我有一个正在尝试完成的测试用例。它应该尝试找到位置 ABC,但该位置实际上并不存在于数据库中。本质上,它不应该加载我试图查找的数据。我已经尝试了很多事情,但还没有弄清楚。这是我的代码:

@Test
public void testFindByInvalidLocABC() {
System.out.println("findByInvalidLocABC");
Storage result = StorageFacadeTest.facade.findByLoc("ABC");
assertNotNull(result);
assertEquals("NOK-0000001402", result.getId());
assertEquals("ABC", result.getLoc());
}

非常感谢任何建议!

最佳答案

I have a test case I'm trying to finish. It should try to find location ABC, but that doesn't actually exist in the DB

为了确保测试执行期间数据存在或不存在,您不能依赖应用数据库或共享数据库。
自动化测试必须是可重复的。否则,这些今天是可靠的,但明天就没用了,而且容易出错。
因此,我鼓励您在执行测试之前清理/填充测试数据库(或架构)。

此外,正如其他人评论的那样,您的测试看起来不像“未找到”场景。您断言检索到的Storage 内容。这个不成立。它应该看起来像:

@Test
public void findByLoc_with_invalidLoc_returns_null() {
Storage result = StorageFacadeTest.facade.findByLoc("ABC");
assertNull(result);
}

单元测试的一些改进:

1) 在被测方法中返回 Optional 而不是 null 可能更好,但您不会在实际实现中使用它。所以我在我的例子中遵循它。

2) 在测试代码中确实不建议使用System.out

3) 也不建议在测试方法中使用 test 前缀。这是一种遗留方式,因为 Java 注释不存在。

关于java - 测试用例以确保数据无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48591996/

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