gpt4 book ai didi

design-patterns - 使用 jUnit 进行 DAO 测试的设计模式

转载 作者:行者123 更新时间:2023-12-02 22:27:07 25 4
gpt4 key购买 nike

我正在寻找使用 jUnit 测试 DAO 类的最佳实践。我的 DAO 类有几个典型的 DAO 方法,如 createUser(User user)、deleteUser(Long id)、updateUser(User user)、findUserById(Long id)...

所以 createUser 可能很简单,我可以创建一个用户,然后检查它是否有 ID。如果是,测试将通过。或者您宁愿创建一个用户,然后从数据库中读取用户并检查它是否1)找到用户2) 返回用户的实例变量与之前保存的用户相同

现在 deleteUser 函数呢?它需要一个 ID,但为了获得 ID,我首先必须创建一个用户。那么该怎么做呢?使用测试方法中的 testCreateUser 方法还是 DAO 类中的 createUser 方法?

与 updateUser(User user) 相同,我需要首先更新用户,而 findUserById(Long id) 我首先需要一个 Id。

我认为我的要求很常见,所以我想知道是否有类似设计模式的东西用于使用 jUnit 测试 DAO。

谢谢,保罗

最佳答案

恕我直言,没有这样的设计模式来进行 JUnit 测试。您必须引用一些最佳实践。

例如,在下面的情况下,您在删除之前不使用 testCreateUser 方法创建用户。你必须为此使用 DAO 类。每个测试用例方法相互独立。

Now what about the deleteUser function? It takes an ID, but in order to obtain the ID I would first have to create a User. So how to do this? Use the testCreateUser method from the test method or the createUser method from the DAO class?

现在,要解决您的问题,您可以使用 setUp 和 tearDown 方法。在 setUp 方法中,您可以创建要测试的模拟对象,在 tearDown 中,您可以删除它们。如果您这样做,每个测试方法将获得您可以测试的同一组模拟数据。

关于design-patterns - 使用 jUnit 进行 DAO 测试的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801926/

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