有没有办法覆盖测试中所有参数的排列

时间:2011-08-30 18:40:41

标签: c# unit-testing selenium mstest selenium-rc

我正在编写Selenium测试来验证我的网页上的输入表单。我想涵盖输入数据的所有组合,但我不想为每个组合编写单独的测试。现在,我使用excel电子表格作为数据源,我将每个行列为组合。

我希望有一种方法可以覆盖所有案例而无需使用excel文件或为每个案例编写单独的测试。有什么可以帮助解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

你只是需要一种方法来获得所有值的组合吗? 您可以使用linq和其他各种技术执行此操作 - 请参阅this questions as an example

因此,为您的方法生成所有输入组合,然后在mstest或其他任何内容中编写一个Unittest(潜在的非常长的运行时间)。

答案 1 :(得分:1)

如果您想要测试每个参数的每种可能性,那么您可以使用LINQ语法中的多个from语句进行快速交叉连接,以获得这些可能性的每种组合。 / p>

您可能还想查看Pex。它可以分析您的类并生成测试方法以测试每个可能的代码路径。找到你自己可能没有想过的那些极端情况非常有用。当然,这只有在您以单元可测试的方式编写类时才有用。如果您的网页表单没有MVC操作或类似的东西支持,则可能无济于事。