2014-02-10 3 views
3

Я написал тест JUnit, который успешно выполняется в Intellij и передан. Но если я запустил mvn clean test, что конкретный тест терпит неудачу. Чтобы быть более конкретным, задача состоит в том, чтобы проверить, отправлен ли запрос или нет. Поэтому, когда я запускаю тест в 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

У вас есть другая версия Java в вашем% PATH%, чем тот, который вы используете в своей среде IDE? – JustinKSU

+0

Пожалуйста, дайте мне знать, если вам нужно что-нибудь еще –

ответ

0

Использование createPayload.getBytes("UTF8") может решить проблему

Смежные вопросы