在我的测试用例中,我使用assertEquals()进行单元测试.问题是这个断言的值来自HashSet,其中顺序是随机的.因此,每次运行测试用例时,由于HashSet的字符串表示形式值不同,我的断言可能会失败.
为了解决这个问题,我想在我的代码中使用LinkedHashSet,但这似乎不是一个有效的解决方案,因为LinkedHashSet的选择只是为了适应一些测试用例.
这是单元测试中的常见情况吗?
不要比较toString()a HashSet<T>,而是将它与另一个(预期的)进行比较HashSet<T>.
以下测试将成功:
@Test
public void test() {
Set<Integer> set = new HashSet<Integer>(Arrays.asList(2, 1, 3));
Set<Integer> expected = new HashSet<Integer>(Arrays.asList(3, 2, 1));
assertEquals(set, expected);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |