매개 변수를 전달하는 메소드를 호출합니다. 이 매개 변수가 특정 값과 같으면 스레드는 중지 될 때까지 반복적으로 작업을 시작합니다. 모든 반복에서 일부 값이 변경됩니다.
JUnit에서 이러한 값을 확인할 수있는 방법이 있습니까?JUnit 테스트 : 스레드에서 결과를 테스트하는 방법
답변
스레드를 스폰하는 경우 더 이상 단위 테스트를 수행하지 않습니다. 통합 테스트입니다. 이 '값'을 변경하는 로직을 스레드 생성없이 테스트 할 수 있도록 코드를 리펙토링하십시오. 스레드를 생성하지 않고 작동한다면 스레드를 생성 할 때 작동 할 것입니다. (저는 제가 자신을 강의 중 하나에 설정했음을 알고 있습니다 ... 잠재적으로 공유 변수를 적절히 동기화해야하는지 확인해야합니다. 교착 상태를 유발할 수있는 코드가 있음).
코드를 보지 않고도 테스트 방법을 제안하기는 어렵습니다. 그러나 스레드를 생성하는 경우에는 단 단위 테스트가 아닙니다.
나는 하나의 반복을 캡슐화하고 그것을 단위 테스트하기 위해'tick()'메소드가 필요하다고 말하고 싶다. 객체의 필드를 변경하는 대신 "일부 값"을 반환하면 테스트 (및 전체적인 디커플링)가 더 좋습니다. –
@ 빅터 동의, 스레드 동작을보다 잘 캡슐화합니다. 그래도, 나는 'ticking'을 시작하기 전에 전체 행동 단위를 테스트하고 싶다 – BeRecursive
죄송합니다. 코드를 제공하지 않으 셨습니다. 그것은 나의 대학을위한 프로젝트의 일부이며 나는 이것을 할 수 없다는 것을 두려워합니다. 내 코드가 작동해야하는 것처럼 작동하지만 내 프로젝트에 일부 JUit 테스트를 포함해야하기 때문에 코드의이 부분을 테스트 할 수있는 방법이 있는지 궁금합니다. 스레드를 만들고 스레드가 지정된 간격으로 반복을 수행합니다. 그래서 JUnit을 사용하여 테스트 할 수 없습니다. 고맙습니다! :) – anna
각 반복이 값을 적절하게 수정했는지 확인하기 위해 테스트하려는 경우 예상 입력을 사용하여 반복 코드를 호출하고 예상 출력을 테스트하십시오. 분리 각의 peice을 테스트
의사 자바 코드 :
for each (file : files) {
doSomething(file); // this updates some running totals or something
}
이 그럼 당신은 (여기서 모의 값이 적절하게 업데이트 할 경우 테스트하고보고 싶어 각 입력에 doSomething()
전화를 몇 가지 단위 테스트를 작성하려면 필요한). 그런 다음 스레드가 스폰되도록하고 결과 값을 확인하도록 통합 테스트를 수행하십시오.
- 1. 데이터베이스에 junit 테스트 실행 결과를 기록하는 방법
- 2. FEST JUnit-swing 테스트 noobQ : 메인 클래스를 테스트하는 방법?
- 3. JUnit 테스트 패키지 방법
- 4. Junit 테스트 방법
- 5. JUnit 무작위화된 테스트 방법
- 6. Junit | 메서드에서 매개 변수를 테스트하는 방법
- 7. 동적 Junit 테스트
- 8. JUnit 테스트의 데이터베이스 결과를 기록하고 재사용하는 방법
- 9. Junit. 클래스 객체를 반환하는 메서드를 테스트하는 방법
- 10. JUnit 보고서 - 테스트 방법 설명
- 11. 사용자 정의 Eclipse 빌더를 테스트하는 JUnit
- 12. 프로그램의 JUnit 테스트 결과
- 13. tfs의 junit 테스트 결과
- 14. 일반 JUnit 테스트 클래스
- 15. 웹 드라이버 junit 테스트
- 16. 데이터베이스에 대한 Junit 테스트 정보
- 17. 이클립스에서의 원격 JUnit 테스트
- 18. 는 JUnit 테스트 케이스
- 19. 스레드에서 junit assert 예외가 발생했습니다.
- 20. JUnit 테스트 데이터베이스 설정
- 21. phpunit을 사용하여 여러 쿼리 결과를 테스트하는 방법
- 22. JUnit 테스트 작성
- 23. 안드로이드 JUnit 테스트에서 텍스트 상자 값을 테스트하는 방법
- 24. junit 테스트 결과 가져 오기
- 25. TFS가 Ant/JUnit 빌드에서 단위 테스트 결과를 찾을 수 없습니다.
- 26. Android JUnit 클래스의 EditText 입력을 테스트하는 기본 방법
- 27. 테스트 결과를 테스트 케이스에 연결하는 방법?
- 28. 다른 JUnit 테스트 클래스에서 JUnit 테스트 클래스 실행
- 29. JUnit 이상 동작으로 멀티 스레드 코드 테스트
- 30. NetBeans의 GWT JUnit 테스트
일부 코드를 참조하십시오. – dan