이 두 방법간에 런타임 논리 차이가 있습니까? 아니면 어떤 행동상의 차이가 있습니까?
그렇다면 __init__
을 잊어 버리고 언어 OOP 패러다임 대신 unittests 클래스에 대해 여기에서 생각하는 setUpClass
만 사용하면됩니까?언제 setUpClass를 사용해야하고 __init__을 사용해야합니까?
9
A
답변
11
두 개는 완전히 다릅니다.
setUpClass
은 하나의 클래스 메소드이므로 클래스 속성 만 설정할 수 있습니다.
이들은 다른 시간에 호출되기도합니다. 테스트 러너는 모든 테스트에 에 대한 새 인스턴스을 만듭니다. 테스트 클래스에 5 개의 테스트 메소드가 있으면 5 개의 인스턴스가 생성되고 __init__
은 5 번 호출됩니다.
setUpClass
은 일반적으로 번,이라고합니다. (테스트 순서를 뒤섞어서 다른 클래스의 테스트 메서드가 혼합되어 있다면 setUpClass
을 여러 번 호출 할 수 있으므로 tearDownClass
을 올바르게 사용하여 문제가되지는 않습니다).
또한 테스트 러너는 대개 테스트 실행을 시작할 때 모든 테스트 인스턴스를 만듭니다. 테스트 인스턴스가 (많은) 상태를 가지지 않으므로 많은 메모리를 차지하지 않으므로 일반적으로 값이 싸다.
일반적으로 은이 아니고 __init__
을 사용해야합니다. setUpClass
을 사용하여 모든 테스트간에 공유 상태를 만들고 setUp
을 사용하여 테스트 당 상태를 만듭니다. setUp
은 테스트가 실행되기 직전에 호출되기 때문에 테스트 전에 필요하지 않을 때까지 많은 메모리 집약적 상태가 생성되는 것을 피할 수 있습니다.
관련 문제
- 1. OpenGLES 2 - 언제 glBindTexture를 사용해야하고 언제 glActiveTexture를 사용해야합니까?
- 2. 항상 생성자로 __init__을 사용해야합니까?
- 3. 언제 @classmethod를 사용해야하고 def 메소드 (자체)를 사용해야합니까?
- 4. 언제 자동으로 속성을 사용해야하고 propertychanged 이벤트가있는 속성을 사용해야합니까?
- 5. KineticJS : 언제 toImage()를 사용해야하고 언제 사용합니까 (
- 6. 언제 "숨겨진 텍스트 상자"를 사용해야하고 언제 (HTML 5) "데이터 속성"을 사용해야합니까?
- 7. $ (object)는 언제 사용해야합니까? $ object는 언제 사용해야합니까?
- 8. div는 언제 사용해야합니까? 프레임은 언제 사용해야합니까? 다른 형식의 동적 콘텐츠는 언제 사용해야합니까?
- 9. Import-Package는 언제 사용해야합니까? Require-Bundle은 언제 사용해야합니까?
- 10. 우리는 ANTLR을 언제 사용해야합니까
- 11. 언제 _aligned_malloc()을 사용해야합니까?
- 12. 언제 FSharpFunc.Adapt를 사용해야합니까?
- 13. cfthread는 언제 사용해야합니까?
- 14. 안드로이드에서 언제 루퍼를 사용해야합니까?
- 15. Qt : 언제 Q_DECLARE_METATYPE을 사용해야합니까?
- 16. 헬퍼는 언제 사용해야합니까?
- 17. 언제 sqlalchemy back_populates를 사용해야합니까?
- 18. 언제 curl_close()를 사용해야합니까?
- 19. 언제 ng-template을 사용해야합니까?
- 20. git stash는 언제 사용해야합니까?
- 21. 언제 wkWebView를 사용해야합니까?
- 22. GLSL은 언제 사용해야합니까?
- 23. 언제 HSTS를 사용해야합니까?
- 24. 언제 OSGi EventAdmin을 사용해야합니까?
- 25. 인터페이스 작성기는 언제 사용해야합니까?
- 26. make_heap과 priority_queue는 언제 사용해야합니까?
- 27. 언제 javax.swing.SwingUtilities.invokeLater()를 사용해야합니까?
- 28. 언제 추상적 메서드를 사용해야합니까?
- 29. 왜/언제 WebSecurity.cs를 사용해야합니까?
- 30. 언제 RequireJS를 사용해야합니까?