2017-01-27 3 views
-2

私はNUnitを使用しています。ここに私の必要条件は次のとおりです。NUnit:3つの関数に対して1つの汎用テストメソッドを書くには?

たとえば、add(),sub()およびmul()という3つの機能があるとします。 Nunitで1つの汎用テストメソッドを書くには?

関数のタイプによっては、汎用テストメソッドがテストを実行します。

add()を汎用テストメソッドに渡すと、add()などのテストを実行する必要があります。私は、3つの方法のための3つの別個の試験方法を書いたくありません。

私はただ1つの一般的なテスト方法を使用してこれを達成したいと思います。これは可能ですか?

+3

3つの別々のメソッドを記述したくない理由は何ですか?可能であれば、3つすべてのケースを1つのテストメソッドに詰め込もうとすると、読みにくいMOREコードになります。それはまた私に思い出させる、一般的なテストはちょうど悪い考えです。私は何をテストしているのですか?関数呼び出しが成功したとしますか?単体テストは価値のあるものをテストするべきです。 – meganaut

+1

テストは簡単に書くべきです。私はむしろ読むのが簡単な3つの方法を持っていて、テストのために書かれた巧妙なコードを見つけ出します。私はテストで継承などをお勧めしません。テストは簡単で直感的でなければなりません。 – CodingYoshi

+0

@meganaut明快さをありがとう。 – meshsf

答えて

0

良いと思っていないようです。ユニットテストについてです。

ユニットテストの目的は、障害の根本原因をすばやく特定し、できるだけ早く修正することです。

これは、テストするつもりの「異なる動作」ごとにというテストがあるという単純な事実から始まります。言い換えれば、あなたは間違いなくの3つのテストメソッドそれぞれのテストメソッドに行く。

複数のの3つの方法のテスト方法に行くこともできます。 「空に追加する」と異なる場合があります。たとえば、「空でないものを追加する」などです。

おそらく、1つのテストケースで3つのメソッドすべてを実際に使用するいくつかの「統合」レベルのテストが必要です。全体的な「配管」が最終的に機能することを確認するだけです。しかし、単体テストレベルからは、レベルごとにで3つのメソッドが期待通りに機能することを確認してください。ご存知のように、実際にが確認されたがadd()はすべての可能なシナリオで動作します。他の方法と組み合わせてテストする必要はもうありません。

+0

あなたは上記の3つの方法のそれぞれについて1つのテスト方法に行くことができると述べました。どうやってするか?どうか私に教えてくれますか? – meshsf

関連する問題