나는 대략 다음과 같습니다 클래스가 있습니다어떻게이 비동기 메서드를 조롱 할 수 있습니까?
나는 BeginGetStaticReferenceData이 콜백 메소드를 호출 할 수 호출 할 때 수 있도록 내 IWebService 인터페이스를 조롱 할public class ViewModel
{
public ViewModel(IWebService service)
{
this.WebService = service;
}
private IWebService WebService{get;set;}
private IEnumerable<SomeData> MyData{get;set;}
private void GetReferenceData()
{
this.WebService.BeginGetStaticReferenceData(GetReferenceDataOnComplete, null);
}
private void GetReferenceDataOnComplete(IAsyncResult result)
{
this.MyData = this.WebService.EndGetStaticReferenceData(result);
}
.
.
.
}
. 나는 Moq을 사용하고 있으며 이것을 어떻게 할 수 없어요. - 내가 쉽게 대신 MOQ를 사용하여 적용 할 수 있습니다 확신
//Arrange
var service = new Mock<IWebService>();
service.Setup(x => x.BeginGetStaticReferenceData(/*.......don't know.....*/));
service.Setup(x => x.EndGetStaticReferenceData(It.IsAny<IAsyncResult>())).Returns(new List<SomeData>{new SomeData{Name="blah"}});
var viewModel = new ViewModel(service.Object);
.
.
최고를,이 큰했다. 고맙습니다! – Charlie
나는 이것을 UdpClient에 적용하려고 시도했다. 콜백을'=> callback = cb'에서'=> cb (ar)'로 바꾼 경우에만 작동했다. 괴물을 해킹했는지 확실하지 않습니다 ... – Benjol
위의 모의 수업은 무엇입니까? 수업이 아니니 사용하기 위해 참고 자료를 추가해야하나요? –