【发布时间】:2021-03-08 09:14:25
【问题描述】:
我目前有一个模型类产品:
public class ProductModel
{
public string? ProductName{ get; set; }
public DateTime ExpiryDate { get; set; }
}
我正在使用 XUnit 和 AutoFixture 进行单元测试:
下面是我的测试方法:
[Theory, AutoData]
public async Task SaveProduct_ShouldSaveProductToDatabase(ProductModel productModel)
{
var expiry = productModel.ExpiryDate; // 2020-03-17 03:01:27.2166623
... implementation to save to database
}
Autofixture 用于自动生成日期,设置为 2020-03-17 03:01:27.2166623。有没有办法自定义 ProductModel 以特定格式返回模型属性。例如,我希望将返回的日期设置为 2020-03-17 03:01:27(无毫秒)。
我搜索了一些例子,找到了一个检索特定日期的例子:
public class AllProducts2020: ICustomization
{
public void Customize(IFixture fixture)
{
fixture.Customize<ProductModel>(composer =>
composer.With(p => p.ExpiryDate, new DateTime(2020, 1, 1)));
}
}
上面实际上返回日期年份为 2020 的所有产品。我想使用上面的自定义类,除了我返回所有日期格式如下的产品:2020-03-17 03:01:27(没有毫秒)
任何提示如何实现这一点?
【问题讨论】:
标签: c# xunit autofixture