在使用moq mock方法時如果直接返回null,在方法被調用時會拋出空指針異常
var repository = new Mock<IRepository>();
var someObject = null;
repository.Setup(p => p.GetByIdAsync(It.IsAny<string>()).Result)
.Returns(someObject);
var someObjectFromRepository = await repository.Object.GetByIdAsync("someid");
// 此時會拋出空指針異常
解決方法:
不對改方法進行setup設置,該方法的返回值即為null
var repository = new Mock<IRepository>();
var someObjectFromRepository = await repository.Object.GetByIdAsync("someid");
// 此時someObjectFromRepository為null
