Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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 测试从db查询的结果集中返回唯一值的方法_Java_Database_Unit Testing_Junit - Fatal编程技术网

Java 测试从db查询的结果集中返回唯一值的方法

Java 测试从db查询的结果集中返回唯一值的方法,java,database,unit-testing,junit,Java,Database,Unit Testing,Junit,假设有一个名为“Students”的数据库表 我请求数据库使用以下命令返回所有名称: SELECT Name FROM Students 因此,结果集将是: ResultSet rs = {"John" "Jane" "Dana" "John"} 然后我想返回所有唯一的值,因此我编写了一个名为populateSet()的方法,用rs填充HashSet-setOfNames 执行populateSet(ResultSet rs)后,仅显示唯一的名称: "John" "Jane" "Dana"

假设有一个名为“Students”的数据库表

我请求数据库使用以下命令返回所有名称:

SELECT Name FROM Students
因此,结果集将是:

ResultSet rs = {"John" "Jane" "Dana" "John"}
然后我想返回所有唯一的值,因此我编写了一个名为
populateSet()
的方法,用
rs
填充
HashSet-setOfNames

执行
populateSet(ResultSet rs)
后,仅显示唯一的名称:

"John" "Jane" "Dana"
以下是验证测试:

public void testValidation() {
    // Skipping the test data / db connection / query part
    ResultSet rs = ResultSet received back from DB
    Set<String> expected = {"John", "Jane", "Dana"};
    Set<String> actual = WhateverClass.populateSet(rs);
    assertEquals(expected, actual);
}
public void testValidation(){
//跳过测试数据/db连接/查询部分
ResultSet rs=从数据库返回的结果集
Set expected={“John”、“Jane”、“Dana”};
设置实际值=WhateverClass.populateSet(rs);
资产质量(预期、实际);
}
我可以编写哪些可能的单元测试


我知道我应该写一个空的,空的,负的测试。哪些是角落案例?

潜在的角落案例:

  • 非常大的表(数百万行)
  • 事务性-例如,如果在开始表扫描后插入/删除/更新名称,会发生什么情况
  • 数据排序
  • 名称区分大小写/不区分大小写
  • 名称中的非ASCII字符

您还可以使用SQL中的
选择不同的
函数。这不是一个你想在本地进行的必要的操作,但这并不能回答我的问题。这是一个QE角色的面试问题。这就是为什么我把它作为评论而不是答案发布。哦,我明白了。谢谢,好的开始。如果列可以为空,我会添加空名称。
public void testValidation() {
    // Skipping the test data / db connection / query part
    ResultSet rs = ResultSet received back from DB
    Set<String> expected = {"John", "Jane", "Dana"};
    Set<String> actual = WhateverClass.populateSet(rs);
    assertEquals(expected, actual);
}