我是單元測試的n00b。我已經安裝的NuGet FsCheck.Nunit
和NUnitTestAdapter
,我試圖做基於屬性的測試,通過the inestimable Scott Wlaschin很大程度上啓發。如果隨機生成的輸入無用,我該如何重新嘗試基於屬性的測試?
我現在用的是[<Property>]
屬性,我想「跳過」輸入不符合測試的要求的能力:
[<Property(MaxTest=10)>]
let ``Calling unzipTo with an invalid destination will yield a failure.`` badDest =
if Directory.Exists(badDest)
then // somehow skip to the next randomized input
else // do the actual test
什麼是最簡單的方法是什麼?
我更喜歡FsCheck/NUnit的答案(如果存在的話),但我也會考慮其他任何可以在Visual Studio中運行測試的框架。 (我以爲我看到一些框架,其中有一個簡單的功能來做到這一點,但我不知道它是什麼)
我更喜歡FsCheck.NUnit,因爲它可以爲F#生成隨機輸入,類型(歧視工會等),無需額外的工作。
您需要一個自定義生成器。 –
IIRC對於then語句,只需返回說明測試成功的結果而不運行測試。像「真」這樣簡單的東西可能會起作用。這幾年我遇到了問題,並且問題已經在解決問題。記住這個測試只是一個功能,而測試驅動程序只是想要一個表明成功或失敗的結果,以便讓它取得成功。 –
@Guy Coder問題是我想讓測試重新運行不同的隨機輸入,如果生成的沒有用處 - 我不希望函數多次運行不合適的輸入並聲明自己成功它從未真正進行過測試。 –