2017-07-19 7 views
1

テストの失敗時にNunitは、評価された期待値と実際の条件のみを表示します。アサートは、あなたが複数の例外にNUnit:テストの失敗の手順を記録し、エラーを報告します。

同じ問題をアサートしている場合は失敗した指示する方法はありません。そこにスタックトレースであるが、そのことの記述ではない、と私のいずれかの手順の詳細は、右の前に発生したと教えてくれありませんエラー。

これを実行する1つの方法は、メッセージをAssertに渡すか、ログステートメントを追加することです(たとえば、TestContext.WriteLineを使用)。しかし、これは、私がアサルトを書くたびにユニークなメッセージを書く必要があることを意味します。また、毎回ログステートメントを追加する必要があります。これは時間がかかり、テストを更新するときに追加のメンテナンスが必要になります。

メソッド呼び出しとアサートコードステートメントをそのまま使用すると、この情報を簡単に表示できますか?

例えば、このような何か:ここ

Expected: True 
But was: False 

On: Assert.That(User.HasOrderInvoice, Is.True) 

Steps: 
    User.LoginToAccount(UserAccData.TestUserAcc) 
    User.AddProductToCart(Data.TestProdData) 
    User.PurchaseCart() 
    User.GoToOrderHistory() 

答えて

0

一つの解決策は、あなたのテストをより明示的にすることです。 NUnitには、これを可能にするための様々な制約があります。さらに、より有用なエラーメッセージを出力します。私はそれは私がに興味があるほとんどのケースをカバーして見つける

Expected: Has property 'HasOrderInvoice' equal to true 
But was: False 

Assert.That(User, Has.Property(nameof(User.HasOrderInvoice)).True) 

のようなエラーメッセージの何かを与えることになる:として

例えば、私はあなたの上記のアサートを書くでしょう。明示することができないものについては、次のようにAssert.That()内に説明を追加できます。

Assert.That(User.HasOrderInvoice, Is.True, "Test User Has Order Invoice") 

次のようなメッセージが表示されます:

Test User Has Order Invoice 
Expected: True 
But was: False 
+0

それでもメンテナンスが必要です。それは私の他の問題を解決しません - どのように失敗のポイントにつながるステップを記録するのですか?私はより単純なアプローチを探しています。私は、失敗のポイントまでメソッドコールを記録すると私にそれを与えると思います。しかし、メンテナンスが必要なので、私のテストと一緒にコードを追加することは望ましくありません。 –

関連する問題