Я новичок в модульном тестировании и тестировании на основе свойств, и в своем проекте я хочу использовать эту технику, но, к сожалению, это легко сказать... Я смотрел доклад о библиотеке FsCheck.XUnit, но парень тестировал числовую функцию ( модуль)... И я хочу протестировать функции, которые используют строки, списки и массивы.. Может быть, вы, ребята, могли бы дать подсказку или источник, где я могу просмотреть? P.S. везде, где я искал, были только числовые примеры, которые выглядели довольно легко проверить.
Есть некоторые функции, которые я хочу протестировать:
let wordSplit (text:string) =
text.Split([|' ';'\n';'\r';'\t';'!';',';'.';'?';';';':'; '/'
;'\\';'-';'+'; '*'; '#';'(';')';'^';'"';'\'';'`'; '@';'~';'|'|]
,StringSplitOptions.RemoveEmptyEntries)
|> Array.toList
let rec matchTails (tail1 : string list) (tail2 : string list) =
match tail1, tail2 with
| h1::t1 , h2::t2 ->
if (h1=h2) then
matchTails t1 t2
else
false
| [], _ -> false
| _, [] -> true
let rec phraseProcessor (textH: string) (textT: string list) (phrases: string list list) (n:int) =
match phrases with
|[] -> n
| h :: t ->
match h with
|x when x.Head = textH && (matchTails (textT) (x.Tail)) ->
phraseProcessor (textH) (textT) (t) (n+1)
| _ ->
phraseProcessor (textH) (textT) (t) (n)
let rec wordChanger (phrases : string list list) (text:string list) (n:int)=
match text with
| [] -> n
| h :: t ->
wordChanger phrases t (phraseProcessor (h) (t) (phrases) (n))