私は仕事で苦労しているコードを持っています。これを克服する方法についてもっと知りたいです問題のタイプ。Mockito、jUnit、testableクラスには@Namedアノテーションがあり、テスト時に値を渡す方法
public class SomeTestableClass {
\t @Inject(optional = true)
\t @Named("balance.period.tm")
\t protected String balance;
\t public void save(Connection connection, Report r) throws Exception {
\t \t if (1 == 1) {
\t \t \t someObject.someMethod(param1, param2, balance) {
\t \t \t // do something, etc...
\t \t \t }
\t \t }
\t }
}
私はここで任意のビジネスコードを投稿することができませんが、私は私が直面してる問題の大まかなアイデアを作成したよう。すみませんが少し混乱しても、私はまだ非常に緑です。したがって、1つのプロパティファイルから値を取得する「文字列バランス」があります。
コードがsomeObject.someMethod()に到達すると、 "balance"がnullであるため、nullpointer例外が発生します。私はverify()で同じメソッドを使用しようとしています。
どのようにすればテストに値するか、どうすればこの問題を回避できますか?
乾杯。
どの依存性注入フレームワークを使用していますか? –
ユニットテストでは、セッターメソッドを使用することができます(または、テストでフィールドを表示させることができます)。このようにすれば、なぜフィールドにアクセス可能にするのかを文書化してください。別のオプションは、クラスを拡張し、 'save'メソッドの中でゲッターを使用することです。これにより、上書きされたゲッターは、テストで必要とする値を提供します。テストでインジェクションを使用したい場合(標準ユニットテストではありません!)、より多くの情報を提供する必要があります。 –