背景:
我有大量符合以下规则的命令:
我想编写一个测试以下
的测试人员现在,我可以通过反射来写这个,手动滚动,没问题,但我想知道是否可以使用FsCheck生成器来生成参数。
这是我用FSCheck可以实现的吗?
答案 0 :(得分:0)
是的,它可以。实际上,如果FsCheck可以生成参数的类型(即,如果它们是基本类型,如string或int,或者可以反射生成),那么从您的描述中,FsCheck已经可以开箱即用生成这些类型,而无需您执行任何操作。
例如,类似这样的类型:(我假设您正在使用C#)
public class Foo {
public string A { get; }
public int[] B { get; }
public Foo(string a, int[] b) {
A = a;
B = b;
}
}
可以由FsCheck生成,您可以使用FsCheck.Xunit编写一个xunit测试,如下所示:
[Property]
public void FooTest(Foo oneRandomFoo, Foo[] manyRandomFoos) {
// assert something about the foos
}
FsCheck会为你生成一堆随机的Foo实例。