单元测试以检查100万个生成的字符串的唯一性

时间:2015-06-28 17:53:05

标签: c# .net unit-testing random tdd

我想写一个单元测试

  1. 查看包含100万个随机生成的字符串的列表。

  2. 确保每个号码都是100%唯一且没有重复。

  3. 检查和比较没有重复项的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

您可以使用LINQ Distinct() method。它很可能使用散列,并且在任何手动滚动的性能上都很接近。有关绩效的一些信息here

答案 1 :(得分:0)

当您参考&#34;单元测试时,&#34;您通常指的是一个常规运行的测试,以确保即使您更改了部分代码之后代码仍可正常运行。你在这个问题中要求的似乎更多的是验证一些字符串实际上是唯一的,而不是产生它们的代码正确地确保唯一性。从编程的角度来看,更好的是单元测试,它验证确保唯一性的代码是否正常工作。这应该是一种方法,比如说,wouldBeUniqueInSet(String newString, Set<String> existingSet)要测试该方法是否正常工作,您可能希望使用已在集合中的字符串运行它并期望它返回false,并使用尚未在集合中的集合并期望它返回true。那些是单位测试,我们通常使用这个术语。

答案 2 :(得分:-1)

如果目标是最佳效果,则在构建列表后,对列表进行排序并检查重复项。