我已經創建了波紋管方法,但現在我想對其進行單元測驗。但我不知道如何在我的測驗中設定 linq 查詢。
public async Task<Item> GetItemById(Guid Id)
{
var Item= await _userDbContext.Items.Where(c => c.Id.Equals(Id)).FirstOrDefaultAsync();
return Item;
}
[Test]
public async Task GetItemById_Should_Retrieve_Item_Data()
{
// Arrange
var itemId = Guid.NewGuid();
var itemRecord = _fixture.Build<Item>().With(x => x.Id, itemId)
.With(x => x.Item,item)
.Create();
//how can i setup my where linq query
`**_userDBContextMock.Setup(x => x.Items).Returns(patientRecord);**`
// Act
var result = await _appCrudRepository.GetItemById(itemId);
// Assert
result.Should().NotBeNull();
result.Should().Be(itemRecord);
}
uj5u.com熱心網友回復:
您應該專門模擬您的 _appCrudRepository 和 GetItemByID 方法:
//Your implemenation here.
Mock<IAppCrudRepository> _appCrudRepository = new Mock<IAppCrudRepository>();
var itemRecord = _fixture.Build<Item>().With(x => x.Id, itemId)
.With(x => x.Item,item)
.Create();
_appCrudRepository.Setup(d => d.GetItemByID())
.ReturnsAsync(itemRecord);
現在,當您呼叫 GetItemByID 時,它將回傳 itemRecord。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/524060.html
標籤:C#实体框架测试单元
