2011-12-07 9 views
4

私は内部状態を変更するだけのpublic voidメソッドを持つオブジェクトを持っています。私の一部は、パブリックメソッドなのでテストが必要なように感じますが、これをテストするにはどうしたらいいですか?あなたは、内部状態が変化したという事実を利用して、他のテストに頼っているのですか?オブジェクトの状態を変更するだけのメソッドをテストしますか?

例を追加するには、gap bufferにインサートメソッドがあり、内部状態を変更するだけのmoveCursorForwardメソッドが実装されています。

おかげで、 アリー

答えて

2

は、私はそのような方法のために別々のテストを好みます。例えば、「moveCursorForward」法のための2つのケースがあります 1カーソルは 2カーソルがバッファ

の端部にだから、ケース1であろうと思われないバッファの終わりに既にあります特別なテストを作成しないとスキップされます。 つまり、いくつかの境界ケースを逃すことができます。

3

私は注射があなたの答えだと思います。 Cursorオブジェクトを作成し、Bufferに挿入します。あなたがそれが完全に動作することを知るように、ユニットをテストしてください)。カーソルはステートフルなのでバッファに渡したので、moveCursorForwardをテストするときにカーソルオブジェクトをアサートできます。

マイケルフェザーのWorking Effectively with Legacy Code

をチェックアウトこれはまた、モックオブジェクトが有益であるかもしれないところです。

関連する問題