1. ホーム
  2. unit-testing

[解決済み] NUnit vs. MbUnit vs. MSTest vs. xUnit.net [終了しました。]

2022-03-23 08:04:23

質問

.NET用のunittestingフレームワークはかなりたくさんあります。この小さな機能比較を見つけました。 http://xunit.github.io/docs/comparisons.html

今、私は私たちにとって最適なものを選ぶことになっています。でも、どうやって?それは重要なことなのでしょうか?どれが最も将来性があり、それなりの勢いがあるのでしょうか?機能を重視すべきなのか?xUnitは最も近代的で、.NET用に特別に設計されているようですが、NUnitは広く受け入れられているようです。MSTestはすでにVisual Studioに統合されています。

解決方法は?

古いスレッドですが、一票を投じようと思い xUnit.NET . 他のテストフレームワークはほとんど同じですが、xUnit.NETはユニットテストに対してかなりユニークでモダン、そして柔軟なアプローチをとっています。それは、もはやTestFixturesやTestsを定義するのではなく、コードに関するFactsとTheoriesを指定するように用語を変更し、TDD/BDDの観点からテストとは何かという概念とよりよく統合されるようになりました。

xUnit.NETは、非常に拡張性が高いのも特徴です。FactAttributeとTraitAttributeの属性クラスはシールされておらず、オーバーライド可能なベースメソッドを提供しているため、これらの属性が装飾するメソッドの実行方法を大幅に制御することができます。xUnit.NETのデフォルトでは、NUnitのテストフィクスチャと同様のテストメソッドを持つテストクラスを書くことができますが、この形式のユニットテストに限定されるものではありません。フレームワークを拡張して、BDDスタイルのConcern/Context/Observation指定をサポートすることも可能です(図参照)。 こちら .

xUnit.NETは、Theory属性とそれに対応するdata属性により、フィットスタイルのテストも直接サポートしています。Fitの入力データは、Excelやデータベース、あるいはWord文書などのカスタムデータソースから読み込むことができます(baseデータ属性を拡張することで)。これにより、単体テストと統合テストの両方に単一のテストプラットフォームを利用できるようになり、製品の依存性や必要なトレーニングを減らす上で大きな効果を発揮します。

xUnit.NETでは、テストに対する他のアプローチも実装することができます。xUnit.NETのモッキングフレームワークと組み合わせることで、より効果的なテストが可能になります。 Moq この2つは、自動テストを実装するための非常に柔軟で拡張性の高い、強力なプラットフォームとなります。