2014-02-10 2 views
3

Intellij에서 성공적으로 실행되는 JUnit 테스트를 작성하여 전달했습니다. 하지만 mvn clean 테스트를 실행하면 특정 테스트가 실패합니다. 보다 구체적으로는 요청이 보내 졌는지 여부를 확인하는 것입니다. 따라서 IntelliJ에서 테스트를 실행하면 상태 코드 201 (성공)과 함께 테스트가 통과합니다. 하지만 mvn clean install을 실행하면 상태 코드 400 (잘못된 요청)으로 표시됩니다.JUnit 테스트가 IntelliJ에서 성공적이지만 Maven에서 실패했습니다.

온라인으로 검색했지만 해결 방법을 찾을 수 없습니다. 도와주세요.

다음은 코드입니다. assertEquals(response.getStatus(), Response.Status.CREATED.getStatusCode()); : 그것은 첫 번째 주장에 실패

@Test 
public void testUpdateMultiValueAttributes() throws URISyntaxException { 


    String createPayload = 
      "{\n" + 
        " \"id\": 9,\n" + 
        " \"email\": \"" + "[email protected]" + "\",\n" + 
        " \"profile\": {\"userAttrs\":[" + 
        " {\"CUST_ATTR_MULTI_VALUE\": \"CUST_ATTR_MULTI_VALUE_3\"}" + 
        " ]}" + 
        "}"; 
    MockHttpRequest request = MockHttpRequest.put("/subscribers/9"); 
    request.contentType(MediaType.APPLICATION_JSON); 
    request.content(createPayload.getBytes()); 
    MockHttpResponse response = new MockHttpResponse(); 
    dispatcher.invoke(request, response); 
    LOG.error(response.getContentAsString()); 
    response.toString(); 


    assertEquals(response.getStatus(), Response.Status.CREATED.getStatusCode()); 
    SubscriberDto subscriber = null ; 
    try { 

     subscriber = MarshallingUtils.unmarshallJSON(new TypeReference<SubscriberDto>() { 
     }, response.getContentAsString()); 
    } catch (Exception e) { 
     fail(e.getMessage()); 
    } 

    Collection<SubscriberAttributeDto> customAttributes = subscriber.getProfile().getUserAttrs(); 

    if (customAttributes!=null) 
    assertTrue(customAttributes.contains(new SubscriberAttributeDto("CUST_ATTR_MULTI_VALUE", "CUST_ATTR_MULTI_VALUE_3"))); 
+1

당신은 좀 더 많은 정보를 얻을 수 있을까? 코드 조각 등 – boskop

+1

IDE에서 사용하는 것보다 % PATH %에 다른 버전의 Java가 있습니까? – JustinKSU

+0

다른 것이 필요한지 알려주십시오 –

답변

0

문제를 해결할 수 있습니다 createPayload.getBytes("UTF8") 사용은

관련 문제