5

アプリケーションをjunitでテストしようとしています。

したがって、次のクラスをセットアップしました。

@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://localhost:8080/myapp/abc] の HTTP リクエストのマッピングが見つかりません

しかし、何が悪いのかまったくわかりません...

助けていただければ幸いです!

前もって感謝します

4

2 に答える 2

0

私の質問にはいくつかの問題があります:

最初は、AbstractJUnit4SpringContextTests を拡張して @RunWith(...) を使用することはできません。同じであるためです。

次に、dispatcherServlert を使用するのではなく、application.xml でハンドラーを定義し、@Autowire プライベート ハンドラー ハンドラーを介してテスト ケースで自動配線することにより、ハンドラーを使用する必要があります。

その後、すべてがうまくいくはずです!

于 2011-11-09T14:12:58.723 に答える