模拟对象数据

Kei*_*ler 4 c# test-data mocking lorem-ipsum

我想模拟对象数据,而不是对象本身.换句话说,我想生成一个n个对象的集合,并将其传递给一个生成随机数据字符串和数字的函数.这有什么事吗?可以将其视为对象数据的Lorem Ipsum.数值范围等的约束不是必需的,但是会是一个奖励.

小智 5

我在阅读你的问题时首先想到的是QuickCheck,这是Haskell的测试工具.在QuickCheck中,您可以指定函数应具有的属性(不变量),并且可以为输入指定有效范围(加上更多功能),QuickCheck将生成一堆随机输入数据并将其抛出到您的函数中并查看如果输出符合规范.我发现有一个F#端口,因此QuickCheck存在于.net世界中:

http://fscheck.codeplex.com/

还有一个MS Research项目Pex可能接近您的想法:

http://research.microsoft.com/en-us/projects/Pex/

"... Pex找到了方法的有趣输入输出值,您可以将其保存为具有高代码覆盖率的小型测试套件.Microsoft Pex是用于测试.NET Framework应用程序的Visual Studio插件."

我之前没有使用它,但看起来它有助于生成练习函数的任何和所有分支的边缘案例数据.它实际上分析了一个函数,而不仅仅是抛出真正随机的东西.