0

私はJUnitテストを持っています:

@Autowired
private UserController userController;

@Test
public void getUser() throws Exception {
    User user = jUnitDAOHelper.createUser();

    Map<String, Object> params = new HashMap<String, Object>();

    params.put("email", user.getUserDetail().getEmail());

    String result = sendRequest("/user", GET, userController, params);
    assertNotNull(result);
    System.out.println("result="+result);
}

これは私のコントローラーです(スニペット):

@Controller
@RequestMapping("/user")
public class UserController extends BaseController {
    // deleted
}

これは私のsendRequestメソッドです:

public String sendRequest(String url, String method, Object controller, Map<String, Object> params) throws Exception {
        request.setRequestURI(url);
        request.setParameters(params);
        request.setMethod(method);
        request.setContentType("application/json");
        handlerAdapter.handle(request, response, controller);
        return response.getContentAsString();
    }

このエラーを投げる:

org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException: No matching handler method found for servlet request: path '/user', method 'GET', parameters map['email' -> array<String>['test@test.com']]

ハンドラーアダプター:

    protected MockHttpServletRequest request;
    protected MockHttpServletResponse response;
    protected HandlerAdapter handlerAdapter;

    @Before
    public void setUp() {
       request = new MockHttpServletRequest();
       response = new MockHttpServletResponse();
       handlerAdapter = applicationContext.getBean(HandlerAdapter.class);
    }

何がうまくいかないのですか?すべてが正しくマッピングされていると思いますが、これをスローし続けます。

4

2 に答える 2

0

コントローラ クラスを作成しましたが、リクエストを処理する実際のメソッドはありません。引数を取り、結果を生成するメソッドを作成する必要があります。

于 2013-09-25T14:48:09.647 に答える