いくつかのテストで私のIVehicleRecordsRepository
をモックする必要があります。ReturnAsyncで設定、値渡しで返されてもnullになる必要があります
public interface IVehicleRecordsRepository
{
Task<VehicleRecord> StoreAsync(VehicleRecord veh, Guid? userId = null);
//...
}
と今私はStoreMethod()
がパラメータとして渡されたのと同じ値を返す必要がありますので、xUnitのテストでそれを模擬しよう:だから、ここでレポ・インターフェースです。ここでは、このシナリオをテストするテストです:
[Fact]
public async Task ShouldGetValueFromMockedMethod()
{
var mockRepo = new Mock<IVehicleRecordsRepository>();
mockRepo
.Setup(repo => repo.StoreAsync(It.IsAny<VehicleRecord>(), Guid.NewGuid()))
.ReturnsAsync((VehicleRecord veh, Guid userId) => veh)
// tried this too -> .Returns((VehicleRecord veh, Guid userId) => Task.FromResult(veh))
;
VehicleRecord vr = new VehicleRecord(newVehicle, Guid.NewGuid());
var testVeh = await mockRepo.Object.StoreAsync(vr);
Assert.NotNull(testVeh); // ====> FAILS HERE
Assert.AreEqual(vr, testVeh);
}
だから、どのように私は私がお返しにStoreAsync()
に渡された同じ値を得ることができますか?
部品番号のバージョン:4.7.99.0
また、私は(NULL可能で)このようにそれを設定することができ())) .ReturnsAsync((VehicleRecord veh、Guid uid)=> veh) '' ' – alvipeo