2013-12-16 1 views
0

getBoards 메소드 용 EasyMock으로 JUnit을 작성하는 방법 (아래 예 참조). EasyMock과 함께 JUnit을 사용하여 코드를 처리했지만 시도 할 수 없었습니다. 내가 잠시 당신이 조롱 할 예를 들어 무효 방법 조롱 사용 EasyMock.expectLastCall()자바에서 easymock으로 junit을 작성하는 방법은 무엇입니까?

은 "https://stackoverflow.com/questions/20604031/how-to-write-test-method-for-void-method-in-junit-easymock-in-javalittle-diff-i"

public class DCI implements ...{ 
private Device device = null; 
    private SnmpUtils snmp = null; 
DCM(Device device){ 
this.device = device; 
} 

@override 
void openCommun(){ 
snmp = new SnmpUtils(device); 
snmp.openSnmpComm(); 

} 
// ---> How to write Junit test with easymock for this method? 
public List<Board> getBoards(DeviceIdn deviceIdn) throws SnmpException { 

     List<Board> boardList = new ArrayList<Board>(); 
     try { 
     //BoardTableClass --> Below given 
      BoardTable boardTable = new BoardTable(snmp); 
      boardTable.readTable(); 

      for (int row = 0; row < boardTable.size(); row++) { 

       String strBoardIndex = boardTable.getValue(row, BoardTable.BoardColumn.BoardIndex); 
       String strBoardName = boardTable.getValue(row, BoardTable.BoardColumn.BoardName); 
       String strBoardType = boardTable.getValue(row, BoardTable.BoardColumn.BoardType); 
       int boardIndex = new Integer(strBoardIndex); 
       BoardIdn boardIdn = new BoardIdn(deviceIdn, boardIndex); 
       Board board = new Board(boardIdn); 
       board.setName(strBoardName); 
       board.setType(strBoardType); 
       boardList.add(board); 
      } 
      logger.info(boardList.size()); 
     } 
     //In handleException method , snmpException checked 
     catch (Exception e) { 
      handleException(e); 
     } 

     return boardList; 
    } 
} 
+0

이 레이아웃은 모의에 도움이되지 않습니다. 인스턴스 변수를 구체적으로 작성중인 객체에 전달하고 있습니다. 인스턴스 변수를 조롱하고 싶지 않다면 조롱과는 거의 관련이 없습니다. – Makoto

+0

안녕하세요. 하지만 여기에 모의 .. – shree

답변

0

또 하나 개의 링크에 설명이

amimalService.saveOldAnimals(List<Animal> animals){} //present in AnimalService class 

그래서 테스트 케이스

animalService.saveOldAnimals(animals); 
EasyMock.expectLastCall(); 
된다

귀하의 무효화 된 방법이 조롱되었습니다.

귀하의 경우 DeviceIdn 객체를 생성하고 getBoard 메소드에 전달하십시오.

getBoard(myDevice); 

우리가 조롱 할 필요가 무엇을 이해 그렇소는 해둬 당신이 조롱 할 필요가 무엇인지 이해하는 데 도움이 될 것입니다 도움이 너무없는 도메인 클래스를 이해하고 있지 않다 무엇을.

예를 들어, 나는 저장소가이 메서드 호출이있는 경우 테스트 케이스를 위해 좋은하지 않기 때문에 당신이 그 방법을 조롱 할 수 있도록 이제) (당신의 getBoard에서 가정 방법 List<Animal>

을 반환 animalRepository.findByAge(int age) 말을 호출 한이 데이터베이스에서 값을 가져옵니다. 대신 자신의 값을 준비하고 저장소 호출이 호출 될 때마다 메소드에 리턴하십시오. 그래서 방법에 대한 조롱은 이와 같습니다.

EasyMock.expect(animalRepository.findByAge(12)).andReturn(amimalsList); 

이 animalsList는 테스트 사례에서 작동하도록 테스트 방법으로 준비되었습니다.

+0

No..getBoards 메서드는 void method.it가 List..i를 반환하지만 두 번째 단계에서 해당 out.its이 전혀 안 들어 가지 않음 – shree

+0

.getBoards 메서드가 아닙니다. void method.it는 List..i를 반환하지만, 두 번째 단계에서는 그 내부로 들어 가지 않습니다. 보드 테이블 boardTable = 새 BoardTable (snmp); boardTable.readTable(); 이것 이후에 나온다. – shree

+0

왜 BoardTable이 뭐냐고 묻고 있는데 어떤 오류가 나고 있는지 묻는다. 귀하의 도메인 클래스를 모르는 상태에서 도움을 드릴 수 없습니다. –

관련 문제