Khi bạn sử dụng Check.QuickThrowOnFailure
, nó sử dụng cấu hình Config.QuickThrowOnFailure
, trong đó có các giá trị:
> Config.QuickThrowOnFailure;;
val it : Config =
{MaxTest = 100;
MaxFail = 1000;
Replay = null;
Name = "";
StartSize = 1;
EndSize = 100;
QuietOnSuccess = false;
Every = <fun:[email protected]>;
EveryShrink = <fun:[email protected]>;
Arbitrary = [];
Runner = <StartupCode$FsCheck>[email protected];}
Các giá trị quan trọng để xem xét ở đây là StartSize
, nhưng đặc biệt EndSize
. Một số máy phát trong FsCheck sử dụng ngữ cảnh kích thước để xác định kích thước hoặc phạm vi của các giá trị mà nó tạo ra.
Nếu bạn thay đổi EndSize
thành ví dụ: 1,000
bạn có thể thực hiện thử nghiệm không thành công:
> Check.One({Config.QuickThrowOnFailure with EndSize = 1000}, fun (a:int) -> (add a 0) = a);;
System.Exception: Falsifiable, after 15 tests (0 shrinks) (StdGen (1912816373,296229213)):
Original:
101
with exception:
> System.Exception: nasty bug
at FSI_0040.add(Int32 a, Int32 b)
at [email protected](Int32 a)
at FsCheck.Testable.evaluate[a,b](FSharpFunc`2 body, a a) in C:\Users\Kurt\Projects\FsCheck\FsCheck\src\FsCheck\Testable.fs:line 161
at <StartupCode$FsCheck>[email protected](String message) in C:\Users\Kurt\Projects\FsCheck\FsCheck\src\FsCheck\Runner.fs:line 365
at <StartupCode$FsCheck>[email protected](String , TestResult) in C:\Users\Kurt\Projects\FsCheck\FsCheck\src\FsCheck\Runner.fs:line 365
at FsCheck.Runner.check[a](Config config, a p) in C:\Users\Kurt\Projects\FsCheck\FsCheck\src\FsCheck\Runner.fs:line 275
at <StartupCode$FSI_0055>[email protected]()
Stopped due to error
Nguồn
2016-11-14 15:09:56
Cảm ơn rất nhiều! Nó hoạt động tốt – vidi