gpt4 book ai didi

java - 如何在不使用 "add"等的情况下在 DAO 中测试 "find"?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:32:58 24 4
gpt4 key购买 nike

在下面的代码中,问题是我无法在不使用 dao.list().size() 的情况下测试 dao.add(),反之亦然。

这种做法是正常的还是不正确的?如果不正确,如何改进?

public class ItemDaoTest {

// dao to test
@Autowired private ItemDao dao;

@Test
public void testAdd() {
// issue -> testing ADD but using LIST

int oldSize = dao.list().size();
dao.add(new Item("stuff"));
assertTrue (oldSize < dao.list().size());
}

@Test
public void testFind() {
// issue -> testing FIND but using ADD

Item item = new Item("stuff")
dao.add(item);
assertEquals(item, dao.find(item.getId()));
}
}

最佳答案

我认为您的测试是如上所述的有效集成测试,但我会使用 Add 来帮助测试 Find,反之亦然。在某种程度上,您必须允许自己信任您对外部依赖的最低集成级别。我意识到在您的测试中存在对其他方法的依赖性,但我发现 Add 和 Find 方法是非常容易验证的“低级”方法。它们本质上是相互测试的,因为它们基本上是逆向方法。

Add可以很容易地为find建立前置条件

查找可以验证添加是否成功。

我想不出任何一个失败都不会被您的测试捕获的场景

关于java - 如何在不使用 "add"等的情况下在 DAO 中测试 "find"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9950102/

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