を使用して変数の値を設定します。は、私が持っているmockito
SomeClass a = spy(SomeClass.class)
SomeClass
はprivate int myValue
を持っています。
は、私がどのように私はMockitoを使用していることを行うことができますmyVlaue
3に設定したいですか?
(Mockitoではできない場合は、Mockitoを使用しているコードを破棄することなく、私の次善のオプションは何が望ましいですか)。
注:私はそれを行うことができます
- が
getMyValue()
を模擬することをお勧めしませんが、私はすでに知っています。 setMyValue(int newMyValue)
を追加しないでください、私はそれを望まないです。
ここでの問題は、あなたのテストがあなたの実装にあまりにも縛られているということです。より良い質問は、「この時間を模擬してこのintについて非常に重要なのは何ですか?」 SomeClassのオブジェクトを適切な値で構築できませんか?実際のインスタンスを偵察するためにspy(myObject)を実行できることは知っていますか? –
@AshleyFrieze SomeClassで実際の関数をテストし、その関数がmyValueを使用するためです。 私はSomeClassが変数そのものの代わりに常にgetMyValue()を呼び出してgetMyValue()を呼び出して3を返すようにコードを変更することができますが、これは安全な方法ではなく、今説明したより高度な機能を探しています。 –
この種のホワイトボックステストは「テストの匂い」です。パブリックインターフェイスを介してクラスの動作をテストしているようには見えません。それは懸念の分離の欠如を示唆している。 –