2013-02-08 2 views
1

나는 이름과 값을 반환하는 목록이 있습니다. 반환 목록이 알파벳순으로되어 있는지 확인하여 Junit 테스트를 만드는 데 관심이 있습니다. 지금까지이 일을했지만 항상 "TRUE"라는 결과를 얻습니다. "MINTS ......"을 고려하고 있습니다. 그래서 내 목표는 목록에서 MINTS (Name)을 제거하고 목록을 확인 (VALUE)하여 주문을받는 것입니다. 테이블에서목록에서 문자열을 제거하고 자바에서 정렬

목록

enter image description here

의 JUnit 코드

public void test() throws Exception 
    { 
     DataObj dao = new DataObj(); 

     HashMap<String, Object> params = new HashMap<String, Object>(); 
     params.put("code", 100); 

     List<?> values = dao.getDataObj(params, conn); 

     String previous = ""; 
     boolean result = false; 

     for (final Object vCurrent : values) 
     { 

      String current = vCurrent.toString(); 
      if (current.compareTo(previous) < 0) 
      { 
       result = false; 
       previous = current; 

      } 
      result = true; 
     } 


    } 

내가 값을 인쇄 할 경우 내가 좋아하는 뭔가를 얻을 것 "민트 데이브 민트 재키 민트 데릭 ....."

+1

그리고 질문은 .... 무엇입니까? – SJuan76

답변

1

를이는 JUnit 테스트 있어야하는데 경우에, 당신은 낮은 수준의 테스트를 수행 할 JUnit을 "assertXxxx"방법을 사용한다; 예 : 이 같은 것

import static org.junit.Assert.*; 

    .... 

    @Test 
    public void testOrdered() { 
     DataObj dao = new DataObj(); 

     HashMap<String, Object> params = new HashMap<String, Object>(); 
     params.put("code", 100); 

     List<?> values = dao.getDataObj(params, conn); 

     String previous = ""; 
     for (final Object vCurrent : values) { 
      String current = vCurrent.toString(); 
      assertTrue("list not ordered correctly", /* this arg is optional */ 
         current.compareTo(previous) < 0); 
      previous = current; 
     } 
    } 

이렇게하면 "결과"를 생성 할 필요가 완전히 제거됩니다.

3

루프를 반복 할 때마다 항상 result = true을 설정해야합니다.

당신은 할 수 :

String previous = ""; 
    boolean result = true; 

    for (final Object vCurrent : values) 
    { 

     String current = vCurrent.getValue(); 
     if (current.compareTo(previous) < 0) 
     { 
      result = false; 
      break; 
     } 
    } 
관련 문제