Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中组织单元测试?_Java_Database_Testing - Fatal编程技术网

如何在Java中组织单元测试?

如何在Java中组织单元测试?,java,database,testing,Java,Database,Testing,在我的程序中有两个类:Main.java和DatabaseConnector.java。第二种方法包括10种方法(建立/关闭连接、解释args值以及通过PrepareStatement与数据库交互的方法) 对于每个函数,我想写2-4个测试。我的问题是如何组织?我应该创建DatabaseConnetorTest类并包含所有20-40个测试吗?或者为每个函数创建新的测试类(makeConnectionTest、InsertOrderTest等)以提高代码的透明度 另一个问题是,测试与mysql数据库

在我的程序中有两个类:Main.java和DatabaseConnector.java。第二种方法包括10种方法(建立/关闭连接、解释args值以及通过PrepareStatement与数据库交互的方法)

对于每个函数,我想写2-4个测试。我的问题是如何组织?我应该创建DatabaseConnetorTest类并包含所有20-40个测试吗?或者为每个函数创建新的测试类(makeConnectionTest、InsertOrderTest等)以提高代码的透明度


另一个问题是,测试与mysql数据库交互的函数的良好实践是什么

为类中的每个方法编写测试不是一个好的做法。这可能会提示您将所有方法
公开
,并打破封装原则

这是关于类将如何被使用和编写单元测试来覆盖那些功能场景(正面和负面)的,而不是试图为每个方法编写测试

如果有很多测试,一种方法是根据功能场景将它们组织成单独的测试类


这篇文章为一个类似的问题提供了一些有用的答案。

你能为我链接一些关于测试类的资料吗?@jqboml用一个有用的参考更新了我的答案在一个类中有许多公共方法,这需要对单个类进行许多测试,这是一种代码味道。例如,
DatabaseConnector
建议一个类,该类提供连接到数据库的方法。该名称不表示解释args值的方法和通过PrepareStatement与数据库交互的方法。这些方法可以在它们自己的类中(单一责任)。