junitでアプリケーションをテストしようとしています。Spring 3.0 junit test DispatcherServlet
そこで私は、セットアップ以下のクラスました:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/META-INF/spring/applicationContext-test.xml")
@TransactionConfiguration
@Transactional
public class DispatcherServletTest extends AbstractJUnit4SpringContextTests {
private MockHttpServletRequest request;
private MockHttpServletResponse response;
private DispatcherServlet dispatcher;
@Before
public void setUp() throws Exception {
request = new MockHttpServletRequest();
response = new MockHttpServletResponse();
MockServletConfig config = new MockServletConfig("myapp");
config.addInitParameter("contextConfigLocation","classpath*:webmvc-config.xml");
dispatcher = new DispatcherServlet();
dispatcher.init(config);
}
//test cases
}
をだから、問題は、私のディスパッチャサーブレットが私のコントローラのいずれかにすべての要求を送信できないようだということ、です。
私は設定 - contextConfigurationLocationに何かがあると思います。 それはロガーが言う
を、彼はファイルを見つけることができますように(それ以外の場合は、例外をスローします)に見えませんが、どのような構成をロードしない:
org.springframework.web.servlet.PageNotFound - 見つかりませマッピングURIを持つHTTPリクエストの[にhttp:// localhost:8080/myappに/ ABC]
しかし、私は間違って何絶対にないアイデアを持っていない...
私は任意の助けをいただければ幸いです!
本当にディスパッチャーサーブレットをテストしたいのですが、Webコントローラーのハンドラーメソッドを「のみ」テストしてみませんか? – Ralph
junitを使ってhttpリクエストをテストできないと思います。サービスのみ。 – jaleel
いいえ正しいコントローラメソッドが呼び出された場合、アプリケーション全体の意味を実際にテストします。 例: /myposturlにバックエンドに何らかのデータを含むPOSTを送信し、この呼び出しの原因となったメソッドの正しいコントローラが "応答中"であるかどうかを確認したい だから私は、ディスパッチャサーブレットに要求し、コントローラは直接要求しない。 私のコントローラには、このリクエストを処理するメソッドしかありません。 RequestMapping(method = RequestMethod.POST、headers = "Accept = ...") public ResponseEntity createFromJsonArray(@RequestBody String json){... –
Alexander