그래서 난 몇 가지 코드단위 테스트 코드입니다. ContinueWith()
Task.Factory.StartNew(() => this.listener.Start()).ContinueWith(
(task) =>
{
if (task.IsCompleted)
{
this.status = WorkerStatus.Started;
this.RaiseStatusChanged();
this.LogInformationMessage("Worker Started.");
}
});
이 (namley this.listener.Start ()). 문제는 ContinueWith를 호출하기 전에 테스트가 실행을 완료한다는 것입니다. 내가 디버깅 할 때 코드를 통해 단계별로 추가 지연이 발생하여 문제가 발생합니다.
다른 어셈블리의 테스트 코드에서 어떻게하면 내 테스트가 어설 션에 도달하기 전에 코드가 실행되도록 할 수 있습니까?
난 그냥 Thread.Sleep을 사용할 수 있습니다 ...하지만이 일은 정말 해커처럼 보입니다.
나는 Thread.Join의 Task 버전을 찾고 있다고 생각한다.
이 어떻게 마무리 않는
, 오류가? – maximpa오류 없음 ... listener.start가 조롱 받고 완료되었습니다. 디버그 모드에서 확인할 수 있습니다. 타이밍 문제입니다. –
제가 동기화 문제라고 말하고 싶습니다. 호출하는 비동기 메서드에서 피드백을 받아야합니다. – maximpa