2017-02-13 5 views
8

コンテキストXUnit記述アサートメッセージを実装する方法は? xUnit githubの中

私はこれが見つかりました:私たちは、ある

:答えからAdd Assert.Equal(expected, actual, message) overload #350(ので、開発者は以下を参照してください非既存の過負荷を求める)

引用自己文書化コードを信じている。それはあなたの主張を含んでいます。

(そうxUnitのチームがそれを拒否した)

OK、私はそれを得ました。私はまた、自己文書化コードを信じています。それでも私は にこのユースケースを見つけることができません。

サンプル

// Arrange 
// Create some external soap service client and its wrapper classes 

// Act 
// client.SomeMethod(); 

// Assert 
// Sorry, soap service's interface, behaviour and design is *given* 
// So I have to check if there is no Error, and 
// conveniently if there is, then I would like to see it in the assertion message 

Assert.Equal(0, client.ErrorMessage.Length); // Means no error 

// I would like to have the same result what would be the following *N*U*n*i*t* assert: 
// Assert.AreEqual(0, client.ErrorMessage.Length, client.ErrorMessage); // Means no error 

質問

どのように私はまだそのようなを持っていないのxUnitで、この場合の記述アサートメッセージを実装することができます過負荷ですか?

+0

私は問題が何であるか不明です。あなたがコメントで指摘したように、なぜあなたは単に 'Assert.AreEqual(0、client.ErrorMessage.Length、client.ErrorMessage); 'を使用していませんか? – Kritner

+0

XUnitにそのような過負荷はありません。これはNUnitコールです。最初の文章を見てください:開発者がそのようなオーバーロードを要求し、XUnitチームが引用した "私たちは自己文書化コードを信じています;あなたの主張を含んでいます"のために拒否します –

+0

@ g.pickardou、リンクで提供されます。流暢なアサーションのようにするか、メッセージオーバーロードが残ったままの 'Assert.TrueまたはAssert.False'をラップする独自のアサーションを作成します。それはさらに下に述べられています。あなたはAssert.Trueと.Falseにメッセージを提供することができます。あなたが単にメッセージなしで暮らすことができず、別のアサーションを使用することを拒否した場合は、いつでも次のように返すことができます: Assert.True(数字== 2、 "これは私のメッセージです"); ' – Nkosi

答えて

6

リンクにある提案を使用してください。 fluent assertionsのように、メッセージ過負荷が残っているAssert.True or Assert.Falseをラップする独自のアサーションを作成します。 それはあなたがAssert.Trueと.FALSEにメッセージを提供することができ、さらにダウン

Quote

を述べました。あなたが本当にメッセージにあなたがしたい場合は

Assert.True(number == 2, "This is my message"); 

Quote:

:あなたは、単に メッセージなしでは生きて(と異なる アサーションを使用することを拒否)することができない場合は、いつでも戻って落ちる可能性テストプロジェクトにFluent Assertionsまたは xbehaveを追加して構文を使用できます。 流暢なアサーションは、xunit.net例外が存在すると例外をスローします。

+0

です。それは答えですが、私はあなたのコメントで参照している流暢なサンプルをまだ見つける/取得していません。 –

+0

それは時間がかかりましたが、ついにそれを得ました。 (私が拾う必要があるzillionsユニットテストフレームワークです...) –

+0

流暢なアサーションは簡単に手に入ります。私はそれをたくさん使い、学習曲線は急峻ではありませんでした。 – Nkosi

関連する問題