2013-04-08 2 views

답변

2

단위 테스트를 실행할 때마다 각 테스트 사례가 독립적으로 호출됩니다. 각 테스트 케이스가 실행되기 전에 setUp 메소드가 호출되고 나면 tearDown 메소드가 호출됩니다.

그래서 당신은 테스트 중 토큰을 공유하려는 경우, 당신은 당신의 설정 방법에

token = @"sample"; // or smth else 

을 추가해야합니다.

+0

감사합니다! 그래서, 만약 하나의 테스트 결과를 다른 테스트의 입력으로 사용하고 싶다면 어떻게해야할까요? 이것을 달성 할 방법이 있습니까? – neutrino

+1

단위 테스트는 독립적으로 실행해야합니다. 그렇지 않은 경우 더 이상 단위 테스트가 아닙니다. –

+0

알겠습니다 ... 고마워요! – neutrino

0

테스트 방법이 실행되는 순서가 보장되지 않으므로 testBtestA보다 먼저 실행되거나 나중에 병렬로 실행되는 경우 일 수 있습니다.

+0

공유 리소스 (예 : 싱글 톤)가 손상 될 수 있으므로 테스트를 병렬로 실행하는 것이 가능하다고 생각하지 않습니다. 병렬로 테스트를 실행하는 것은 테스트하는 것이 동기화 인 경우에만 의미가 있습니다. – Sulthan

+0

그래, 요점은 이론적 인 것이었다. 더 나은 예는 테스트 주자가 이론적으로 마지막으로 실행 된 이후 변경된 코드에 따라 다시 실행할 필요가없는 테스트를 파악할 수 있다는 것입니다. –

1

필자가 아는 한, 현재 구현에서는 알파벳 순서로 테스트 메서드를 실행하므로 예제가 문제없이 실행되어야합니다. 내가 뭔가 먼저 테스트하려면

보통, 나는 test1_criticalFeature, test2_dependentFeatures

+0

Sulthan에게 감사드립니다. 그렇습니다. 그러나 어쨌든 변수는 파괴되었습니다. 나는 각 테스트에 대해'SampleTests'의 새로운 인스턴스가 생성되었다고 생각합니다. – neutrino

+0

@neutrino 나는 이것이 사실이라고 생각하지 않는다. 한 테스트 클래스에서 내 테스트 사이에 몇 가지 객체를 공유하고 있다고 확신합니다. 이것은 하나의 클래스에서 여러 테스트 메소드를 갖는 전체 개념입니다. – Sulthan

+0

그런데 무슨 일이 일어나고 있는지 모르겠다. 내 코드가 뭐가 잘못됐다고 생각하니? – neutrino