使用RGR方法时,属性测试是否应运行单元测试?
RGR:红色 - >绿色 - >重构
我注意到我在18ms内执行的单元测试。
但是,我对同一方法的属性测试需要215ms。
{{1}}
所以我的属性测试需要四分之一秒才能执行。
此外,这只是一个简单的属性测试。
运行属性测试的有效方法是什么?
只是办理登机手续?
答案 0 :(得分:3)
使用默认设置,每个FsCheck属性运行100次,因此它的速度慢并不奇怪。但请注意,它不会慢100倍。
我经常在编写属性测试时使用Red / Green / Refactor进程(针对目标函数),并发现它运行良好。
比在C#中执行TDD慢(也因为F#编译器比C#编译器慢)。另一方面,F#类型的系统更具表现力,所以我也发现我{C}中的rely more on the type system。这意味着我需要编写更少的测试。
总而言之,我发现F#和FsCheck的结合是对C#和普通单元测试的净胜利。