다음 서명이있는 메서드가 있습니다.System.Threading.Tasks에서 돌아 오는 방법. UnitTesting의 <string> 메서드
Task<string> Post(PartyVM model);
나는 위의 Post
방법을 테스트하기 위해 다음과 같은 방법을 사용하여 단위 테스트 클래스를 쓰고 있어요.
mockPartyManager.Setup(mr => mr.Post(It.IsAny<PartyVM>())).Returns(
(PartyVM target) =>
{
if (target.PartyID.Equals(default(int)))
{
target.Name = "NewP";
target.Status = "ACTIVE";
target.PartyRoleID = msoList.Count() + 1;
partyList.Add(target);
}
else
{
var original = partyList.Where(q => q.PartyID == target.PartyID).Single();
if (original == null)
{
return "Execution failed";
}
original.Name = target.Name;
original.Status = target.Status;
}
return "Execution Successful";
});
this.MockMSOManager = mockPartyManager.Object;
}
문자열을 반환하려고하면 오류 메시지가 표시됩니다. 암시 적으로 형식 '문자열을'변환 할 수 없습니다
오류 45 'System.Threading.Tasks.Task'나는이 문제를 해결할 수있는 방법
.
가능한 복제 (https://stackoverflow.com/questions/20859639/using-moq-to-mock-an-asynchronous-method -for-a-unit-test) – dymanoid