問題タブ [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.

0 投票する
1 に答える
243 参照

c# - コントローラーをテストして、承認フィルターが正しい役割でコントローラーに適用されていることを確認するにはどうすればよいですか?

サイトの管理セクションにコントローラーがあり、役割が管理者に設定された承認フィルターで装飾されています。

これはうまく機能しますが、フィルターが削除されていないことを確認するための単体テストを作成したいと思います。これまでのところ、Authorizeフィルターが存在することを検証するために持っています。

Roles引数を検証するにはどうすればよいですか?FluentAssertion1.7.1.1を使用しています。

FluentAssertionv2で可能になりました。

0 投票する
3 に答える
9448 参照

c# - コンストラクターが例外をスローするかどうかをテストするためのより適切なものはありますか?

通常、次のように、特定のメソッドで例外がスローされるかどうかをテストします。FluentAssertionsを使用します:

しかし、コンストラクターで例外がスローされた場合、どのようにテストするのでしょうか。私はちょうどこのようにしましたが、FluentAssertionsを介したより適切な方法はありますか?

0 投票する
2 に答える
966 参照

fluent-assertions - XELement とその子要素をテストするには?

サンプルの Xml コード スニペットがあります

xml が XElement に読み込まれ、使用しました

私のコードをテストするには、属性のテストはすべて合格ですが、要素のテスト (最後の条件) は失敗します。

誰でも私のコードの何が問題なのか指摘できますか?

Xmlに「値」という名前の要素があり、その値が「変更された名前」であることをどのようにテストできますか?

前もって感謝します!

0 投票する
1 に答える
2051 参照

c# - Fluentアサーションで初期化されていない(null)プロパティを除外する

FluentAssertionsでは、を使用しAllProperties.But(obj => obj.property_I_do_not_want)て比較アサーションから特定のプロパティを削除できます。これは、無視したいプロパティの名前がわかっている場合は問題ありませんが、私の状況では、単一化されたプロパティのみを無視したいです。今のところ、nullに等しいものは無視してもかまいませんが、デフォルト値に設定されたプリミティブも除外するソリューションがある場合は、非常に便利です。

PropertyAssertions私はクラスの拡張メソッドを書き込もうとして始めましたが、メソッドに渡すために無視する各プロパティにアクセスするためのIEnumerable<Expression<T>>を含むを作成する方法を理解できません。Expression<T>But

0 投票する
2 に答える
151 参照

c# - 文字列日付比較

BDD テストでは、日付を比較しています。日付を比較するときは文字列です。両方の日付が同じであっても、このメッセージが表示され、テストは失敗します

オブジェクトは「01/20/2012 12:00:00 AM」であると予想されていましたが、「1/20/2012 12:00:00 AM」が見つかりました。

もう1つ、これは私のシステムでのみ発生します。別の開発者にテストの実行を依頼すると、テストは問題なくパスします。不足しているタイプの設定はありますか?

そのコード部分は

customer はハッシュ テーブルです。この特定のステートメントは、他のマシンではOKを渡しますが、私のものではありません。

文字列比較の代わりに日付比較に変更することで修正できることはわかっています。しかし、これは他のマシンでは問題ないので、興味がありました。

0 投票する
2 に答える
2554 参照

c# - 等価オプション付きの Should().Contain()

Claimのコレクションに期待される一連のクレームが含まれていると主張しようとしています。私が直面しているように見える問題は、サブセットをチェックして独自の等価オプションを提供する方法がないことです。

私が試したこと...

ID のクレームが期待されたセットと正確に一致しない場合、これは失敗します。たとえば、それらのクレーム以上のものがある場合です。

型が実装していないメソッドをContain単に使用しているため、これは失敗します。object::EqualsClaim

私が必要としているのは何らかの方法ですContainが、エクスポーズと同じ等価オプションを使用しますShouldAllBeEquivalentTo。おそらくShouldBeEquivalentTo私が望んでいたものだと思いましたが、それはコレクション内のアイテムではなく、コレクション オブジェクト自体をアサートするためのものです。

0 投票する
1 に答える
2777 参照

c# - FluentAssertions: ShouldBeEquivalentTo メソッドは引き続き Object.Equals() を呼び出しますか?

私はクラスを持っています。それを と呼びましょうFoo。これは値型であり、したがってEquals/GetHashCode()メソッドをオーバーライドします。別のテスト フィクスチャで、同等性のために使用されるプロパティだけでなく、Foo のすべてのプロパティが適切に設定されていることを確認したいと思います。このため、私のテスト アサーションShouldBeEquivalentToでは、「オブジェクトのタイプに関係なく、両方のオブジェクト グラフに同じ値を持つ同じ名前のプロパティがある」場合に、ドキュメントが示唆するメソッドを具体的に使用します。

ただし、メソッドをShouldBeEquivalentTo呼び出し、真の結果を取得してから、約束Foo.Equalsされたリフレクション ベースのプロパティ マッチングを短絡するように見えます。ShouldBeEquivalentTo

これは予想される動作ですか?そうである場合、FA ソースを調べたところ、この動作を変更する簡単な方法は見つかりませんでした (IEquivalencyStepは内部で宣言されています)。これを回避する他の方法はありますか?

編集: Dennis: はい、比較している 2 つのオブジェクトは同じタイプです。要約すると、私はクラス Foo をオーバーライドEquals しましたが、FA がこの等価概念を単体テストに使用することを望んでいません。

0 投票する
2 に答える
173 参照

c# - アサーションによる Simple.Data の拡張

私はこの非常に優れたミニ ORM であるSimple.Dataを使用して、多くのテスト データをすばやく簡単にセットアップしています。アサーション用に拡張したいと思います。たとえば、カウントでアサートしたいと思います:

FluentAssertions で行うように多かれ少なかれ評価できるように。次のようになります。

しかし、ダイナミクスの利点を失わずにこれを行うのは非常に難しいと思います。

これをどのように行うことができるか、または理由の範囲内で可能かどうかのヒントを誰かが持っていますか?

私は現在、GitHub で src をトラバースして、これをローカルで実行できる方法を見つけようとしており、方法を見つけるために即席でいじっています。

0 投票する
1 に答える
3576 参照

c# - ShouldBeEquivalentTo を使用するときに IEnumerable のすべての項目のプロパティを除外するにはどうすればよいですか?

私の NUnit/FluentAssertions テストでは、次のコードを使用して、システムから返された複雑なオブジェクトを参照オブジェクトと比較します。

しかし、これはまさに私が意図したものではありません。0番目だけでなく、リスト内のすべてのオブジェクトを除外Nameしたいと思います。このシナリオを実装するにはどうすればよいですか?ArticleItems

私はドキュメントに目を通しましたが、解決策が見つかりません。何か不足していますか?

0 投票する
2 に答える
277 参照

c# - C# でジェネリック コレクションの参照等価性をテストするのはばかげた考えですか?

私は不変の辞書の特別なケースを実装していますが、これは便宜上IEnumerable<KeyValuePair<Foo, Bar>>. 通常ディクショナリを変更する操作は、代わりに新しいインスタンスを返す必要があります。

ここまでは順調ですね。しかし、クラスの流暢なスタイルの単体テストを作成しようとすると、私が試した 2 つの流暢なアサーション ライブラリ ( ShouldFluent AssertionsNotBeSameAs() ) のどちらも、実装するオブジェクトの操作をサポートしていIEnumerableないことがわかりました。それらにObject

私が最初にこれに遭遇したとき、Should で、それはフレームワークの単なる穴だと思いましたが、Fluent Assertions に同じ穴があるのを見て、そう思いました (私は C# に比較的慣れていないため)。 C# コレクションに関する概念的な何かが欠けている可能性があります

明らかに、これをテストする他の方法があります-キャストしObjectて使用するNotBeSameAs()、単に使用するObject.ReferenceEqualsなど-しかし、そうしない正当な理由がある場合は、それが何であるかを知りたいです。