2

DBを初期化するServletContextListenerがあります。そして私はそれを私のweb.xmlに追加しました:

<listener>
   <listener-class>util.MySessionListener</listener-class>
</listener>

サーバーを起動すると、すべて問題ありません。

しかし、AbstractTransactionalJUnit4SpringContextTests-testsを実行すると、呼び出されません。私に何ができる?

4

2 に答える 2

10

これServletContextListenerですかHttpSessionListener?あなたの名前は紛らわしいです。

それにもかかわらず、単にこれを実行し@Beforeます:

MockServletContext mockServletContext = new MockServletContext()
new MySessionListener().contextInitialized(
  new ServletContextEvent(mockServletContext)
)

MockServletContext春から来るところ。リスナーがを使用する場合はWebApplicationContextUtils、実行する前にこれを追加する必要がありますcontextInitialized()

mockServletContext.setAttribute(
  WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, 
  yourTestApplicationContext
);

テストケースに簡単に挿入できるyourTestApplicationContextインスタンスはどこにありますか。ApplicationContext

@Autowired
private ApplicationContext yourTestApplicationContext;
于 2012-05-16T16:41:16.357 に答える
0

私はそれを解決しました

ApplicationContextAware

インターフェース:

<bean id="springApplicationContext" class="server.utils.SpringApplicationContext" />

とで

public void setApplicationContext(ApplicationContext context) throws BeansException {

初期化、休止状態を行うことができ、この時点ですべての準備ができています

于 2013-01-31T08:15:29.087 に答える