2012-08-28 12 views
0

Silverlight 단위 테스트에서 각 메서드에서 Thread.Name을 일부 문자열로 설정하는 단일 단위 테스트 클래스의 여러 단위 테스트 메서드가 있습니다. Thread.Name은 이미 할당 된 후에 설정할 수 없으므로 처음부터 충돌이 발생해야합니다. 또한 각 테스트 메소드가 다른 관리 ID를 가진 스레드에서 실행된다는 것을 확인했습니다. 왜 오류를 던지지 않는지 혼란 스러울 때, 각 단위 테스트가 실행 된 후에 스레드가 어떻게 든 "재설정"됩니까?Silverlight에서 스레드 이름 바꾸기 Unit Tests

+0

어떤 테스트 러너를 사용하고 있습니까? – seldary

+0

저는 Silverlight for Windows Phone 유닛 테스트 프레임 워크를 사용하고 있습니다. http://www.smartypantscoding.com/a-cheat-sheet-for-unit-testing-silverlight-apps-on-windows-phone -7 – user977198

답변

0

그래서 MSTest - 을 사용하고있는 것 같습니다. MSTest는 각 테스트마다 ThreadPool의 신선한 스레드를 사용합니다. (또한 각 테스트마다 완전히 새로운 테스트 클래스가 만들어집니다).
다소 느리지 만 테스트 분리가 보장됩니다 (병렬로 실행해야하는 경우 더욱 중요합니다).

각 테스트는 각자의 테스트 결과에 따라서야하기 때문에 테스트간에 공유 상태로 신경 쓰면 안됩니다.

+0

나는이 페이지에서 http://www.jeff.wilcox.name/2009/03/asynchronous-testing/이라고 생각하지 않는다. 그는 데스크탑 유닛 테스트 (나는 그것이 mstest라고 가정한다)를 언급한다. 각 단위 테스트를위한 새로운 스레드와 앱 도메인; 그러나 Silverlight 단위 테스트는 주 Ui 스레드의 모든 단위 테스트를 실행한다고하는데 이는 반복적으로 스레드의 이름을 바꿀 수있는 각 단위 테스트 사이에 어떤 일이 발생하는지 설명하지 않습니다. – user977198