提問
如何順利開始第一個xUnit,有哪些點需要注意
回答
- Mock的接口,假如是類則方法爲Vitual;
- Mock類注意構造函數的Mock,不要只Mock無參的;
- WebAPI獲取Action的值需要通過as轉換as OkObjectResult;
- 無關聯的直接傳null;
示例
[Fact]
public void GetBayByDeviceIdTest()
{
//Arrange
var id = Guid.NewGuid();
var bayApplication = new Mock<BayApplication>(null, null);
bayApplication.Setup(x => x.GetBayByDeviceId(id))
.Returns(new Bay { Id = id });
var controller = new DevicesController(null, null,null, bayApplication.Object, null);
//Act
var actual = controller.GetBayByDeviceId(id);
var o = actual as OkObjectResult;
var v = o.Value;
// Assert
Assert.IsType(typeof(Bay), v);
Assert.Equal(id, (v as Bay).Id);
}
參考
https://learn.microsoft.com/zh-cn/dotnet/core/testing/unit-testing-best-practices