3

SpringJUnit4ClassRunner なしで MockMvc を使用したい。

   public static void main(String[] args) {
     WebApplicationContext wac = ...;
     MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
   }

main は springcontainer によって呼び出されないため、WebApplicationContext を作成するにはどうすればよいですか?

次の動作しない疑似コードのようなものは可能ですか?

 WebApplicationContext wac = new WebApplicationContext("classpath./service-context.xml");
4

1 に答える 1

1

MockMvcインスタンスを作成するには、主に次の 2 つの方法があります。

  1. から、 Spring TestContext フレームワークを介して(たとえば、 と を使用して)、または手動でWebApplicationContextロードされます。@ContextConfiguration@WebAppConfiguration
  2. @Controllerクラスを使用したスタンドアロンモード。

これらは両方とも、リファレンス マニュアルの「テスト」の章の「セットアップ オプション」セクションに記載されています。

WebApplicationContext 手動でを作成するには、 をインスタンス化し、GenericWebApplicationContext次のように XML ファイルから Bean 定義をロードします。

GenericWebApplicationContext context = new GenericWebApplicationContext();
new XmlBeanDefinitionReader(context).loadBeanDefinitions(/* XML config files */);
context.refresh();

または、@Configuration次のようなクラスから:

GenericWebApplicationContext context = new GenericWebApplicationContext();
new AnnotatedBeanDefinitionReader(context).register(/* @Configuration classes */);
context.refresh();

も同様MockServletContextに構成および設定する必要があることに注意してください。context

よろしく、

サム (Spring TestContext フレームワークの作成者)

于 2014-07-17T11:59:45.807 に答える