2011-04-11 2 views
1

단위 테스트를하고 있는데 다른 스레드에 하나의 스레드 컨텍스트를 전달해야합니다. 실생활에서 첫 번째 UI 스레드가 될 것이고 모두 괜찮을 것입니다 (희망). 하지만 내 단위 테스트 UI가 없습니다 (그것은 일부 테스트 스레드입니다). 읽은 내용 : "One thread that always has a SynchronizationContext is the UI thread." 하나의 스레드 (비 UI)의 컨텍스트를 다른 스레드에 첨부 할 수 있습니까? 그렇게하는 방법?UI가 아닌 스레드의 SynchronizationContext를 첨부하는 방법

답변

1

테스트 전략을 재고해야 할 수도 있습니다.

GUI와 백그라운드 작업 간의 상호 작용을 테스트하고 싶다면 간단한 WinForm을 만들고 사용해 볼 수 있습니다.

또는 백 스레드에서 결과를 얻은 후에 (예 : 올바르게 표시) GUI 양식이 예상대로 작동하도록 테스트를 시도하십시오.

GUI에 대한 단위 테스트를 만드는 것은 매우 까다 롭습니다. 그래서 사람들은 쉽게 테스트 할 수 있도록 GUI 외부의 모든 비즈니스 및 기타 로직을 제거하는 경향이 있습니다.

어쩌면 당신은 쉽게 UI + 멀티 스레딩에 그 라인을

+0

자네 말이 맞아, 내가 사용한 적이 비즈니스 로직을 그릴 수있는, MVP와 MVVM, 또는 윈폼으로 WPF를 사용하여 고려할 수 있습니다. 나는 그 일을하는 방법을 완전히 이해하고 있지만, 논리가있는 커다란 UI를 가지고 있으며, 재 설계 할 시간이별로 없다. 그래서 나는 "작은 피"해결책을 찾고 있습니다. – garik

관련 문제