問題タブ [fluent-assertions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - リスト自体ではなくリストの内容を比較するFluentAssertions
たくさんのプロパティを持つ2つのオブジェクト(同じクラスのインスタンス)があり、そのうちのいくつかは他のオブジェクトのリストです。
FluentAssertionsライブラリを使用してこれらを比較し、同じプロパティがあることを確認したいので、追加します
しかし、その後、エラーが発生します
プロパティcsの値が<C、C、C>であると予想されましたが、<C、C、C>が見つかりました
言い換えると、リストであるプロパティを比較すると、参照が等しくなりますが、この場合は明らかに失敗します。
FluentAssertionsに、リスト自体ではなく、リスト内の要素のプロパティが等しいことを表明するように指示するにはどうすればよいですか?
c# - Null を含むコレクションの FluentAssertions Should.Equal
2 つのコレクションを null で比較しようとすると、FluentAssertions が NullReferece 例外で失敗するようです
null のないコレクションでは、比較は期待どおりに機能します。
c# - 流暢なアサーションを使用してコレクションとプロパティのアサーションを組み合わせる方法は?
Fluent Assertion のコレクション アサーションとプロパティ アサーションを「結合」したいと考えています。たとえば、プロパティIEnumerable
ごとの (おそらく「ネストされた」) 比較 (つまり、関数型言語の用語での構造的等価性) を使用して、2 つの がペアごとに等しいことをアサートします。
具体例:
ここでは、a を s のanにToSelectListItems
変換する拡張メソッドを作成しました(ASP.NET MVC から)。とが「構造的に」等しいと主張したいのですが、参照型は s をオーバーライドしないため、デフォルトで参照の等価性を使用することに注意してください。Dictionary
IEnumerable
SelectListItem
actual
expected
SelectListItem
Equal
アップデート
現在、次の手動ソリューションを使用していますが、FluentAssertions に組み込まれたより良いものを望んでいます。
(注:これはデフォルトの投影として使用するZip
私自身の拡張です)IEnumerable
Tuple.Create
更新 2
以下に 2 つの最小限の例を示します。
c# - 一部の小道具の形式が異なるオブジェクトを比較する
DateTime
2つのオブジェクトのすべてのプロパティを比較する最良の方法はDateTime.ToString()
?
私は2つのアサーションを使用してそれを行うことができました:
私は次のことを考えますが、EqualTo<T>()
無効であるためコンパイルされません。
タイプは次のとおりです。
c# - FluentAssertion で列挙可能な文字列を比較できない
このコードは正常に動作します
しかし、これは失敗します
失敗メッセージは次のとおりです。
'コレクションは {1} と等しいと予想されますが、{"1", "2", "3"} には 2 つの項目が含まれているため、多すぎます。
ここで何が問題なのですか?文字列の列挙可能を比較できなかったのはなぜですか?
そして、当然のことながら、私の質問は - foo() でケースを処理する方法は?
fluent-assertions - System.Xml参照が欠落しているFluentAssertionsの最新のnugetパッケージ
1.7のFluentAssertionsnugetパッケージには、System.XmlおよびSystem.Xml.Linqの参照がないようです。
他の誰かがこの問題を経験していますか?
c# - 拡張メソッドのオーバーロードの選択
私は2つの拡張方法を持っています:
今、私はそれを使用するいくつかのコードを書きます:
IEnumerable 型を明示的に指定した場合にのみ、2 番目のオーバーロードが選択されます。両方のケースで 2 番目のオーバーロードを選択する方法はありますか?
c# - FluentアサーションはIEnumerableに文字列に依存しない比較を使用できますか?
FluentAssertionsを使用して比較しようとしているリストのペアがあります。比較を簡単にコーディングできますが、Fluent Assertionsを使用して、テスト失敗メッセージに表示される理由を取得したいと思います。
これまでに見たものはすべて、大文字と小文字を区別するデフォルトのObject.Equals比較を使用しているようです。IComparerをEqualまたはContainsメソッドに渡すことができないようですが、他の方法はありますか?
c# - これは、FluentAssertions を使用して null 許容型とその基になる型を比較するときのバグですか?
ユーティリティ ライブラリの単体テストをいくつか書いていたときに、失敗すると予想されていたテストが実際には合格したことに気づきました。この問題は、1 つの変数と 1 つの変数を比較するのではなく、2 つのfloat
変数を比較することに関連しています。float?
float
私は NUnit (2.6.0.12051) と FluentAssertions (1.7.1) の両方の最新バージョンを使用しています。以下は、問題を示す小さなコードを抜粋したものです。
私のコメントからわかるように、AとBTestFloatEquality()
の両方で正しく失敗します (最初に失敗したテストをコメントアウトして、2 つ目のテストに進みます)。
TestNullableFloatEquality()
ただし、Dはパスしますが、Cは失敗します。ここでもCが失敗すると予想していました。NUnit を使用してアサーションを追加すると、次のようになります。
それらは期待どおりに成功し、失敗します。
それで、質問に対して:これはFluentAssertionsのバグですか、それともnull許容比較に関して何か不足していますか?