2013-08-05 2 views

답변

11

두 개는 완전히 다릅니다.

setUpClass은 하나의 클래스 메소드이므로 클래스 속성 만 설정할 수 있습니다.

이들은 다른 시간에 호출되기도합니다. 테스트 러너는 모든 테스트에 에 대한 새 인스턴스을 만듭니다. 테스트 클래스에 5 개의 테스트 메소드가 있으면 5 개의 인스턴스가 생성되고 __init__은 5 번 호출됩니다.

setUpClass은 일반적으로 번,이라고합니다. (테스트 순서를 뒤섞어서 다른 클래스의 테스트 메서드가 혼합되어 있다면 setUpClass을 여러 번 호출 할 수 있으므로 tearDownClass을 올바르게 사용하여 문제가되지는 않습니다).

또한 테스트 러너는 대개 테스트 실행을 시작할 때 모든 테스트 인스턴스를 만듭니다. 테스트 인스턴스가 (많은) 상태를 가지지 않으므로 많은 메모리를 차지하지 않으므로 일반적으로 값이 싸다.

일반적으로 이 아니고 __init__을 사용해야합니다. setUpClass을 사용하여 모든 테스트간에 공유 상태를 만들고 setUp을 사용하여 테스트 당 상태를 만듭니다. setUp은 테스트가 실행되기 직전에 호출되기 때문에 테스트 전에 필요하지 않을 때까지 많은 메모리 집약적 상태가 생성되는 것을 피할 수 있습니다.

관련 문제