当前位置: 首页 > 知识库问答 >
问题:

如何使用JUnit测试在数据库中插入记录的void方法?

陶飞英
2023-03-14

我有一个方法调用另一个方法来检索数据并将其插入数据库,既然这个方法什么也不检索,我如何在Junit中测试这个方法呢?有人能给我提供一些这种情况的例子吗?

public static void method(){ 
    User user = getUser();  
    try {
        String Query = "INSERT INTO users (USER_ID , Name) VALUES ("
         +user.getID()+","+user.getName()+")";

        Statement statement = conn.createStatement();
        statement.executeUpdate(Query);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

我想为用户使用mock对象,但我不确定如何检查用户是否插入到数据库中。请帮帮忙。

共有1个答案

益和雅
2023-03-14

这里没有什么指示,但在此之前,您必须确定测试中的代码是什么。我这样说的原因是因为这实际上会使您重构您的代码很多。

例如,对于下面的代码:

public static void method(){ 
    User user = getUser();  
    try {
        String query = "INSERT INTO users (USER_ID , Name) VALUES ("
         +user.getID()+","+user.getName()+")";

        Statement statement = conn.createStatement();
        statement.executeUpdate(query);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

您可能需要测试以下内容:-

类似地,您希望确保连接在其作业完成后关闭。因此,您可能希望将此代码提取到一个方法中,该方法接受查询作为参数,打开连接,执行DB CRUD关闭连接并返回输出。并确保您没有在不同的方法中一直重复此代码。

现在,让我们进入指针:-

>

  • 如果您认为某个方法中有一些代码是不可测试的,除非该代码是该方法的一部分。请将其拉出到一个公共/私有方法中并对其进行测试。

  •  类似资料:
    • 问题内容: 我有一个充满void方法的Java类,我想进行一些单元测试以获得最大的代码覆盖率。 例如我有这种方法: 它的名字不好用是因为我翻译了代码以更好地理解。每种方法均会验证参数是否在某种程度上有效并且编写正确。 范例: 我的单元测试很好地涵盖了小的方法,因为我要求它们检查ErrorFile是否包含错误消息,但是我看不到如何测试方法checkIfValidElements,它什么也不返回或什么

    • 问题内容: 我正在实施基于Web服务的大学管理系统。该系统将某些课程添加到数据库。下面是我正在使用的代码。 Course.java 然后另一个文件如下 CourseDaoImpl.java 第三个是下面的Web服务文件,它与前两个交互并向数据库添加数据。 CourseService.java 查看我的代码清单,任何机构都可以建议我如何为我的add方法编写测试用例。我完全是JAVA的初学者,我从朋友

    • 本文向大家介绍在unittest中使用 logging 模块记录测试数据的方法,包括了在unittest中使用 logging 模块记录测试数据的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 生成的日志文件内容如下: PyDev unittesting: How to capture text logged to a logging.Logger in “Captured Output

    • 问题内容: 我在使用方法时遇到问题。现在,当我摆脱其他问题时,通过应用程序工作时不会出现异常,但对象未放入数据库中。 我的实体类: 我的道课: 我的xml上下文: 和: 有人知道我想念什么吗? 问题答案: 您是否有特定的例外情况?知道这是什么会有所帮助。 这些建议您应该尝试在后面添加并更改注释 您还应该检查是否通过以下行启用了事务注释: 在您的.xml配置中

    • 问题内容: 我已经看到了一些与此相关的问题,但是对于我的特定问题,我似乎无法理解任何答案。 我有一个模拟对象,让我们调用“ object1”,将其发送到某种测试方法,让我们调用testMethod()。所以我最后打电话 用于检测。现在在这个testMethod的某个地方,它将有一部分调用方法 这是一个无效方法。如果方法像 它实际上会返回什么,我通常会这样做 但是,这是一个无效方法,我只想测试一下它