私は、テスト対象のクラスをインスタンス化し、そこに存在するかもしれないモックを注入するために、mockitoの@InjectMocksを使用する単体テストのスイートを持つSpringブートプロジェクトを持っています。言い換えれば@AjectWockと組み合わせた@Autowire
私はこの
@InjectMocks のMyClass MyClassのを持っている場合。
それから私は)(
MyClassのMYCLASS =新しいMyClassのを必要としません。
または @Autowired MyClass myClass;
これまでの設定は正常に機能しました。
しかし、最近では、テストを実行するときにプロジェクトのスプリングブートプロパティにアクセスする必要があります。つまり、@Autowire(Environmentクラスをインスタンス化するものを含む)のインスタンスが動作するように、テスト内でSpringBootタスクランナーを使用する必要がありました。
@InjectMocksを使用してクラスをインスタンス化すると、クラス内の@Autowiredのインスタンスが動作しないことがわかりました(作成するオブジェクトはnullです)。つまり、Environmentクラスはなく、Springプロパティへのアクセスはありません。
は、代わりに私が@InjectMocks注釈
ので、この
@InjectMocks のMyClass MyClassのに@Autowiredを追加する必要があります。
この
@Autowired
@InjectMocks MyClassのMYCLASSなります。
私の質問は簡単です。 これには何か問題はありますか? myClassをインスタンス化したり、グリッチを引き起こす可能性のあるものを二重にしますか?