나는 시험하고 싶은 어떤 클래스 (클래스 A)에서 - getSomethingAmount() 메소드를 가지고 있습니다. 이 getSomethingAmount() 메소드 로직은 Set bSet에 따라 달라지며, 클래스은 클래스 A 초기화시 생성자에서 전달됩니다. 예를 들어, Set bSet에는 Status.OK가있는 2 개의 객체가 포함되어 있습니다. getSomethingAmount()가 이어야합니다. 2. 정확하게이 상태를 Mockito로 확인할 수 있습니까? 올바른 방법은 Mockito로 확인하십시오.
는 지금은 JUnit을 주장와 getSomethingAmount() 메소드의 결과를 주장하는 다음 BSET로 넣고, 2 B 클래스 형의 객체를 스텁 - 그것은 작동하지만 "true"로 Mockito 방법처럼 나에게 보이는하지 않습니다.
4
A
답변
1
예상되는 동작에 대한 설명에서 단위 테스트에 매우 견고한 방법으로 들립니다. 이 설정 및 테스트 객체의 초기화 당신이 테스트를 원하는 부작용이없는 것을 가정하에
Set mockBSet = mock(Set.class);
stub(mockBSet.size()).toReturn(2);
A testObjectA = new A(mockBSet);
Assert.assertEquals(testObjectA.getSomethingAmount(), 2);
:은 "진정한 Mockito 방법"에 의해 나는 당신이 원하는 것은 무엇인가 가정하자 고려해야합니다. (예 : 항상 기본 "somethings"를 추가합니다.)이 경우 스텁을 제거하고 테스트중인 메서드가 세트의 크기와 동일한 값을 반환한다고 주장 할 수 있습니다.
1
컬렉션이 아닌 컬렉션의 개체를 모의합니다. 그렇지 않으면 테스트가 깨지기 쉽고 구현을 변경하면 중단됩니다. 예를 들어, size 메소드를 사용하는 대신 Set에서 객체를 반복해야한다고 결정한 경우.
B b = mock(B.class);
A target = new A(new HashSet<B>(Arrays.asList(b, b)));
Assert.assertSame(2, target.getSomethingAmount());
관련 문제
- 1. 사용자 입력, 올바른 날짜 형식인지 확인하십시오.
- 2. 올바른 방법은
- 3. 올바른 방법은
- 4. 올바른 방법은 SQL 서버
- 5. 리디렉션하는 올바른 방법은 무엇입니까?
- 6. 델파이 : 저장소에 올바른 방법은 TObjectList와
- 7. 파일이 수정되지 않았는지 확인하십시오.
- 8. 올바른 방법은, 내가 긴 기능이
- 9. Rails에서 카운트를하는 올바른 방법은 무엇입니까?
- 10. 서블릿을 사용하는 올바른 방법은 무엇입니까?
- 11. System.Threading.Tasks.Task를 끝내는 올바른 방법은 무엇입니까?
- 12. 모델을 통합하는 올바른 방법은 무엇입니까?
- 13. scrollViews가있는 ScrollView - 올바른 방법은 무엇입니까?
- 14. win32inet.WinHttpGetProxyForUrl을 사용하는 올바른 방법은 무엇입니까
- 15. QWidgets를 캡슐화하는 올바른 방법은 무엇입니까?
- 16. 올바른 방법은 ... 내가 현재이 일을하고
- 17. NSUserDefaults를 사용하는 올바른 방법은 무엇입니까?
- 18. TypeForwardedToAttribute를 사용하는 올바른 방법은 무엇입니까?
- 19. 올바른 DateTime이 사용되도록하는 방법은 무엇입니까?
- 20. ABPerson과 연결하는 올바른 방법은 무엇입니까?
- 21. 올바른 구문 또는 올바른 방식으로이 쿼리를 사용하는 방법은 무엇입니까?
- 22. 올바른 인수 수 확인
- 23. VB.NET의 폴더에있는 파일을 확인하십시오.
- 24. 처음 게임을 시작했는지 확인하십시오 - Cocos2d
- 25. 요소가 열거 형인지 확인하십시오
- 26. iOS에서 응용 프로그램 업데이트를 테스트하는 올바른 방법은 무엇입니까?
- 27. WCF 서비스가 있는지 확인하십시오.
- 28. NSFetchedResultsController가 비어 있는지 확인하십시오.
- 29. BSTR이 비어 있는지 확인하십시오.
- 30. DataGrid가 정렬되어 있는지 확인하십시오.