모두 파괴 좋아, 그럼 왜 token
가 파괴 되었습니까?변수는 단위 테스트
답변
단위 테스트를 실행할 때마다 각 테스트 사례가 독립적으로 호출됩니다. 각 테스트 케이스가 실행되기 전에 setUp 메소드가 호출되고 나면 tearDown 메소드가 호출됩니다.
그래서 당신은 테스트 중 토큰을 공유하려는 경우, 당신은 당신의 설정 방법에
token = @"sample"; // or smth else
을 추가해야합니다.
테스트 방법이 실행되는 순서가 보장되지 않으므로 testB
이 testA
보다 먼저 실행되거나 나중에 병렬로 실행되는 경우 일 수 있습니다.
공유 리소스 (예 : 싱글 톤)가 손상 될 수 있으므로 테스트를 병렬로 실행하는 것이 가능하다고 생각하지 않습니다. 병렬로 테스트를 실행하는 것은 테스트하는 것이 동기화 인 경우에만 의미가 있습니다. – Sulthan
그래, 요점은 이론적 인 것이었다. 더 나은 예는 테스트 주자가 이론적으로 마지막으로 실행 된 이후 변경된 코드에 따라 다시 실행할 필요가없는 테스트를 파악할 수 있다는 것입니다. –
필자가 아는 한, 현재 구현에서는 알파벳 순서로 테스트 메서드를 실행하므로 예제가 문제없이 실행되어야합니다. 내가 뭔가 먼저 테스트하려면
보통, 나는 test1_criticalFeature
, test2_dependentFeatures
등
Sulthan에게 감사드립니다. 그렇습니다. 그러나 어쨌든 변수는 파괴되었습니다. 나는 각 테스트에 대해'SampleTests'의 새로운 인스턴스가 생성되었다고 생각합니다. – neutrino
@neutrino 나는 이것이 사실이라고 생각하지 않는다. 한 테스트 클래스에서 내 테스트 사이에 몇 가지 객체를 공유하고 있다고 확신합니다. 이것은 하나의 클래스에서 여러 테스트 메소드를 갖는 전체 개념입니다. – Sulthan
그런데 무슨 일이 일어나고 있는지 모르겠다. 내 코드가 뭐가 잘못됐다고 생각하니? – neutrino
는 ARC를 사용하는 방법을 이름? – rckoenes
@rckoenes 예, 있습니다. – neutrino