如何在 xUnit 中测试 API 方法的 UTC 日期(以毫秒为单位)
How to test in xUnit, UTC Date in millisecond for API method
我正在为 Web API 项目进行 xUnit 测试。其中一种方法以毫秒为单位采用 UTC 日期,我如何测试确认 API 方法的输入参数是有效的毫秒。我有将毫秒转换为日期的逻辑
public static DateTimeOffset DateTimeCalculation(long milSec)
{
DateTimeOffset epochTime = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
return epochTime.AddMilliseconds(milSec);
}
测试方法
[Fact]
public async Task GetPersonMethod_MustTake_DateParameter_InMilliSecond()
{
//Arrange
var fixture = new Fixture();
long startDateTimeUtc = 1626994800000;
DateTimeOffset starTimeOffset = DateTimeCalculationHelper.DateTimeCalculation(startDateTimeUtc);
//Act
//Assert
}
编写单元测试时,应该对实际结果和预期结果有一个清晰的认识。
您的测试应如下所示。
经常问问自己,给定一些输入,预期的输出是什么?
public void GetPersonMethod_MustTake_DateParameter_InMilliSecond()
{
//Arrange
long startDateTimeUtc = 1626994800000;
//Act
DateTimeOffset starTimeOffset = DateTimeCalculationHelper.DateTimeCalculation(startDateTimeUtc);
//Assert
string actual = starTimeOffset.ToString();
string expected = "22/07/2021 11:00:00 PM +00:00";
Assert.Equal(expected, actual);
}
我正在为 Web API 项目进行 xUnit 测试。其中一种方法以毫秒为单位采用 UTC 日期,我如何测试确认 API 方法的输入参数是有效的毫秒。我有将毫秒转换为日期的逻辑
public static DateTimeOffset DateTimeCalculation(long milSec)
{
DateTimeOffset epochTime = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
return epochTime.AddMilliseconds(milSec);
}
测试方法
[Fact]
public async Task GetPersonMethod_MustTake_DateParameter_InMilliSecond()
{
//Arrange
var fixture = new Fixture();
long startDateTimeUtc = 1626994800000;
DateTimeOffset starTimeOffset = DateTimeCalculationHelper.DateTimeCalculation(startDateTimeUtc);
//Act
//Assert
}
编写单元测试时,应该对实际结果和预期结果有一个清晰的认识。 您的测试应如下所示。
经常问问自己,给定一些输入,预期的输出是什么?
public void GetPersonMethod_MustTake_DateParameter_InMilliSecond()
{
//Arrange
long startDateTimeUtc = 1626994800000;
//Act
DateTimeOffset starTimeOffset = DateTimeCalculationHelper.DateTimeCalculation(startDateTimeUtc);
//Assert
string actual = starTimeOffset.ToString();
string expected = "22/07/2021 11:00:00 PM +00:00";
Assert.Equal(expected, actual);
}