【发布时间】:2016-12-20 18:32:06
【问题描述】:
具有以下接口和类,我正在尝试对它们进行 nunit 测试,但测试失败,我无法找出原因。
public interface IService
{
Task<double> GetAccDetails(int personId);
}
public class Person
{
private int _personId;
private IService _service;
public Person(int personId, IService service)
{
_personId= personId;
_service = service;
}
public double Amount {get; set;}
public async Task UpdateBanckingAcc()
{
Amount = await _service.GetAccDetails(_personId);
}
}
这是单元测试:
[Test]
public async void Test1([Values(200)]int personId)
{
const double expectedResult = 20;
var serviceMock = new Mock<IAccountService>();
var taskCompletion = new TaskCompletionSource<double>();
taskCompletion.SetResult(10);
serviceMock.Setup(x => x.GetAccDetails(It.Is<int>(id => id == personId)))
.Returns(taskCompletion.Task);
var person = new Person(personId, serviceMock.Object);
await person.UpdateBanckingAcc();
double res = person.Amount;
Assert.AreEqual(expectedResult, res);
}
这个测试有什么问题?
【问题讨论】:
标签: c# nunit task-parallel-library task moq