코드를 SoftReference<T>
으로 완전히 테스트하려면 '넌 그래, 끝났어.'테스트 할 수있는 방법이 필요합니다. 하나는 'for-test'코드 경로를 사용하여 참조가 null이되도록 강요하지만 GC가 수행하는 것과 똑같이 큐를 관리하지 않습니다. 만약 누군가가 밖으로 반복 설정, 제어, 환경, GC는, 사실, 수집 및 nulling로 자극에 경험을 공유 할 수 있을까?SoftReference를 사용하는 테스트 코드
4
A
답변
3
나는 두 부분으로 문제를 끊을 : 널 (null)이
- 테스트 코드 경로를 반환 될 때를.
- SoftReference 테스트.
# 1에서는 GC가 있다고 생각하는 모든 관련 시나리오를 테스트하기 위해 충분히 변형 된 (null, 때로는 실제 객체) null을 반환하는 모의를 사용합니다. 그것은 단위 테스트 것입니다.
다음은 실제로 GC의 동작 WRT SoftReference가 원하는대로 있는지 확인하기위한 통합 테스트입니다. 로드 테스트의 큰 맥락을 제외하고는 그러한 테스트를 완전히 자동화하기위한 노력에 착수 할 것인지 확신 할 수 없지만, 이것이 중요한 경우 최대 용량의 메모리와로드로 JVM을 가동시킬 것입니다. 소프트 레퍼런스 수집을 시작하기에 충분한 메모리. 오류가 발생한 경로는 코드가 소프트 참조를 사용하지 않는 것입니다.로드 된 메모리가 OutOfMemory 오류를 발생시켜야합니다. 그런 다음 소프트 참조로 변환하여 테스트를 통과시킵니다. 시험의 목적은 단위 테스트에서 행동에 대한 가정을 주장하는 것입니다.
3
This answer은 '전체 메모리'로 가비지 수집을 강제 수행하는 방법을 설명합니다. 네가 가진 것 이상을 할당하려고하면 실패 할 것이다. 그러나 모두 SoftReference
이 정리 될 때까지는 실패 할 것이다.
관련 문제
- 1. PortalSiteMapProvider를 사용하는 단위 테스트 코드
- 2. OCUNit을 사용하는 iOS의 비동기 코드 테스트
- 3. 유닛/통합 HttpCurrentContext를 사용하는 테스트 코드
- 4. Java 코드 테스트
- 5. 코드 의존성 단위 테스트
- 6. Mac에서 테스트 어셈블리 코드
- 7. 파이썬 코드 테스트
- 8. VS2010의 테스트 코드 옵션
- 9. 속도 테스트 코드?
- 10. NUnit 테스트 코드 작성
- 11. SMS 단축 코드 테스트
- 12. AES CTR 테스트 코드
- 13. 테스트 System.Web.Authorization 코드
- 14. QR 코드 리더 테스트
- 15. 단위 테스트 수학 코드
- 16. iTextSharp의 테스트 코드
- 17. 코드 변경시 테스트 영향
- 18. LPC 코드 디버깅/테스트
- 19. 단위 테스트 동시 코드
- 20. Node.js 프로그래밍 워크 플로우 - 테스트, 코드, 테스트
- 21. 테스트 코드 커버리지 툴의 가치
- 22. 임베디드 애플리케이션 용 테스트 코드
- 23. Java : HttpSession의 ArrayList에 SoftReference를 유지하는 데 문제가 있습니까?
- 24. .NET 2.0 코드 - MoQ로 단위 테스트
- 25. 테스트 & 세트 또는 테스트 & 테스트 & 세트를 사용하는 경우?
- 26. 단위 테스트 코드 생성 방법
- 27. 파이썬 모듈에서 샘플 코드 테스트
- 28. Eclipse에서 빠른 코드 테스트 실행
- 29. 셀레늄 테스트 : html 대 코드?
- 30. 생산 코드/서버에서 테스트 실행
정식 단위 테스트는 한 번도하지 않았지만 코드를 체크 아웃 한 방식은 OutOfMemoryError에 맞고, SoftReferences를 사용하고 다시 실행하도록 코드를 변경하는 시나리오를 실행하는 것이 었습니다. –
반복 가능 및 GC? 어려워 질 것입니다. –