私はこのトピックを読んでいました。これは、リフレクションを使用してプライベート変数をテストすることについてです...
しかし、単体テストではそのような問題はなく、コードは完全にテスト可能です。
唯一の問題は、複雑なオブジェクトの各プロパティに対してアサーションを実行して期待される結果を得るには、非常に時間がかかることです。特に複雑なオブジェクトのリストの場合。
これは複雑なオブジェクトなので、オブジェクトごとに実装しない限り、法線Assert.AreEqual
を実行しても正しい結果が得られません。IEquality
しかし、そうしても、アサーション中にどのプロパティ/フィールドの名前、期待値、および実際の値がわかりません。
正しくは、各プロパティ値を手動でリストに入れ、単一CollectionAssertion
の . プロパティ名は教えてくれません。これにより、デバッグが非常に困難になります(デバッグモードに移動して、コレクション内の要素を確認する必要がありました)。
そこで、2 つの複雑なオブジェクトに対してアサーションを実行する再帰的なリフレクション メソッドを作成すると、すべてのプロパティ名、期待値、実際の値がわかります。
それは良い習慣ですか、それとも悪い習慣ですか?