ユニットテストの呼び出しの方法を変更することは可能ですか?
-
19-09-2019 - |
質問
私の推測では、単体テストの現在のセマンティクスには、方法が実際にメソッドを呼び出すことが含まれます。 MyTest()
それが呼ばれるものです。私の質問はこれです:テストの実行方法のパイプラインを何らかの形で変更することは可能ですか(できればテストランナーを再コンパイルすることなく)。 MyWrapper(MyTest)
)?
ありがとう。
解決
mbunitを使用する場合、カスタム属性を定義することでカスタマイズできるものがたくさんあります。
これを行う最も簡単な方法は、TestDecoratorAttributeのサブクラスを作成し、セットアップ、分解、または実行する方法をオーバーライドして、選択した追加のロジックでそれらをラップすることです。
ただし、より細かい制御が必要な場合は、代わりにTestDecoratorPatterNattributeのサブクラスを作成し、DecorateTestメソッドをロジックでオーバーライドして、追加のテストアクションを追加したり、インスタンスアクションをテストしたりできます。
たとえば、Mbunit [Repeat]属性は、テストのボディランアクション(テストのすべてのフェーズを実行)をループと追加のブックキーピングで繰り返し実行することで機能します。
repeatattributeのコードは次のとおりです。 http://code.google.com/p/mb-unit/source/browse/trunk/v3/src/mbunit/mbunit/framework/repeatattribute.cs
他のヒント
ユニットテストフレームワークが傍受と拡張機能を提供する方法に依存します。
ほとんどのフレームワーク(MSTEST、ヌニットなど)を使用すると、テストの前後に実行されることが保証されているセットアップおよび断脱退方法を定義できます。
xunit.net より高度な拡張性メカニズムがあり、テスト方法を飾るために使用できるカスタム属性を定義できるようにして、呼び出された方法を変更できます。一例として、パラメーター化されたテストを定義できる理論的アトリブがあります。
Mbunitがわからないので、これらのシナリオをサポートしているかどうかはわかりません。