Spring Rest Doc
は REST API のドキュメント化に最適だと思います。しかし、それはに基づいており、私の grails アプリ (Grails 3.0.5) でSpring MVC Test
使用する方法がわかりません。Spring MVC Test
@Configuration
grails コンポーネントをテスト コンテキストにスキャンするために構成クラス (およびを使用) を使用しようとしました@ComponentScan
が、何もロードされていないようです ( への http 要求を実行すると、mockmvc
404 が返されました)。
また、grails コントローラーを直接構成しようとしたところ、実行時エラーが発生しました。
フィールドを自動配線できませんでした: プライベート reactor.bus.EventBus
@Integration
また、テスト クラスに (grails から) 追加しようとしましたが、同じエラーが発生しました。
助けてください。
いくつかのコード サンプルを次に示します。私が試したのは、構成クラスまたはクラスの場所または grails コントローラーを以下のテスト クラスの ContextConfiguration に追加することでした。そして、テストクラス自体は基本的に次のspring rest doc
リファレンスです。
import org.junit.Before;
import org.junit.Rule;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.restdocs.RestDocumentation;
import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.documentationConfiguration;
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration
//TODO how to scan Grails components into the test context
public class QuestionRestSpec {
@Rule
public final RestDocumentation restDocumentation = new RestDocumentation("build/generated-snippets");
@Autowired
private WebApplicationContext context;
private MockMvc mockMvc;
@Before
public void setUp() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(context)
.apply(documentationConfiguration(this.restDocumentation))
.build();
}
}
構成クラス (使用しない):
@Configuration
@EnableWebMvc
@ComponentScan
public class AskConfig {
}