私は小さなSpring webappを持っています。私の普通の単体テストのほかに、必要な豆の配線を検証する単体テストを書いています。私は、デフォルトのapplicationContext.xmlファイルを使用しています。「テスト」バージョンではありません。 TomcatのJNDIコンテキストで通常定義されている偽のテストリソースがあります。Springコンテキストのテストでスケジュールされたタスクをオーバーライド/ターンオフする方法
テストは基本的には機能しますが、デフォルトのコンテキストで定義されている一部のスケジュールされたタスクが起動し、テスト結果に影響を与えないエラーメッセージが表示されます。
スケジュールされたタスクは、このような文脈で定義されています。
<task:scheduled-tasks>
<task:scheduled ref="ratesQueryProcessor" method="run" fixed-rate="30000"/> <!-- Every 120 seconds -->
</task:scheduled-tasks>
は、私はデフォルトのapplicationContext.xmlを、私の「テスト・リソース」XMLファイルから生じた春のコンテキストで行うことができるものがあり、おそらくJavaConfigクラスは、これらのスケジュールされたタスクを無効にするためにこれらのタスクを「オーバーライドする」でしょうか?
それが重要ならば、ここに私のユニットテストクラスから小さな抜粋だ:
@RunWith(SpringRunner.class)
@ContextConfiguration(value = {"file:src/main/webapp/WEB-INF/applicationContext.xml", "/testResources.xml"})
//@ContextHierarchy({
// @ContextConfiguration("file:src/main/webapp/WEB-INF/applicationContext.xml"),
// @ContextConfiguration(classes = SpringWiringTest.Config.class)
//})
@TestPropertySource(properties = { "env = tomcat", "doNotifications = false" })
public class SpringWiringTest {
私はJavaConfigクラスで私のテストリソースを定義しようとするが、この時点でてるのでコメントアウト部分がありますXMLファイルとJavaConfigクラスの両方を使用することができません(これについて私は別に投稿しています)。