1
2
您的问题的答案是:您可以使用“数据驱动测试”。可以将值存储在逗号分隔的值文件、XML文件或SQL数据库文件中。我用的是vs2k8,所以你使用vs2k10的过程可能有点不同。 首先,用测试数据创建一个文件。如果创建一个csv文件,它可能看起来像
转到“测试视图”,选择要使用数据的测试。在“属性”中,单击“数据连接字符串”旁边的省略号点。指定文件。
现在,在单元测试代码中,您将从文件中指定数据为
当您运行测试时,您将获得测试运行所使用的每个数据行的测试结果。多方便啊! 更新 如果要自动使用作为枚举保留的参数的笛卡尔积,则可能要使用嵌套for循环,例如
|
2
4
你可以使用像.NET中的galio这样的工具来实现这一点。
提示1:您可以通过学习galio中的[factory]属性来进一步扩展这一点。 提示2:配对有助于生成组合 感谢Jeroen编辑代码并提供支持 |
3
3
对于这种类型的测试,一定要考虑 Pex 你自己的。 但是,为什么不创建一个外部测试 generates all the combinations 从运行时的集合中调用每个组合的测试方法一次? |
4
0
正如@hemp提到的,您可以使用一个外部测试来生成枚举的所有排列。班上 http://www.codeproject.com/KB/recipes/Combinatorics.aspx 看起来很有趣。 然而,测试所有可能的组合仅仅是一个健全的检查吗?对我来说,这是一种代码味道,我会寻找边缘案例,而不是让运行排列的测试运行时间陷入困境。只是一个想法。:) |
5
0
@新星使用数据驱动的想法是最好的解决方案。我将它与T4脚本结合使用,生成一个包含笛卡尔枚举的csv。这是供您参考的脚本(使用 T4 Toolbox )
|
mg610 · 如何开始C++单元测试 2 年前 |
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
shilin agre · 在Python中测试修饰函数 2 年前 |
SlipScout · Unittest只传递单个值,而不是获取多个值 2 年前 |
Alex · 从实际对象的实例返回默认模拟结果 2 年前 |