2017-10-01 16 views
2

F#でボウリングカタ(http://codingdojo.org/kata/Bowling/)を使い始めました。私は、最初のユニットテストを書いた:F#ユニットテストとパターンマッチングのアサーション

[<Fact>] 
let ``If no roll was made then the current frame should be the first one``() = 
    let game = newGame() 
    let cf = currentFrame game 
    match cf with 
    | TenthFrame _ -> Assert.True(false) 
    | Frame frame -> 
     let (firstFrames, _) = deconstructGame game 
     Assert.Equal (frame, List.item 0 firstFrames) 

テストに合格したが、「Assert.True(偽)」の部分はそれを書くには良い方法があります...私には醜いようですか?

+1

[xunit docs](https://xunit.github.io/docs/comparisons.html#assertions)には、Assert.Fail()メソッドがないようです。あなたの解決策はうまくいくようです。 – t3dodson

+0

OK、リンクありがとうございます。私はそのようなコードを書くよりエレガントで機能的な方法を期待していました。これを回答として投稿し、私はそれを受け入れます。 – schglurps

+1

[Expecto](https://github.com/haf/expecto)には 'isFalse'があります。 – s952163

答えて

2

docsより。 xunitはAssert.Fail()のようなメソッドを提供しません。あなたのやり方と同じように、Assert.True (false, "message")を使うことをお勧めします。

+0

@ s952163のおかげでExpectoにも試してみます – schglurps

関連する問題