我想使用FsCheck(与XUnit一起)创建类型为:
然而,我不清楚该如何继续。我应该使用
更新1 有关生成记录问题的后续问题,请单击此处。
type QueryRequest = {Symbol: string; StartDate: DateTime; EndDate: DateTime}
的记录,其中Symbol
仅限于3个选项 - ORCL
、IBM
和AAPL
,而StartDate
和EndDate
仅限于2000年1月1日至2019年1月1日之间的范围。然而,我不清楚该如何继续。我应该使用
Arb.generate<T>
、Arb.Default
或其他一些实用程序来基于测试用例生成和缩小?
更新1 有关生成记录问题的后续问题,请单击此处。
Original:
{ Symbol = ""
StartDate = 8/9/2057 4:07:10 AM
EndDate = 10/14/2013 6:15:32 PM }
Shrunk:
{ Symbol = ""
StartDate = 8/9/2057 12:00:00 AM
EndDate = 10/14/2013 12:00:00 AM }
更新2
以下是测试套件代码:
namespace Parser
open Xunit
open FsCheck.Xunit
open DataGenerators
module Tests =
[<Fact>]
let ``sanity check`` () =
let expected = true
let actual = true
Assert.Equal(expected, actual)
[<Property(Arbitrary = [|typeof<StockTwitGenerator>|])>]
let ``validate queries`` (q: QueryRecord) =
q.EndDate > q.StartDate