【问题标题】:How to auto-mock custom business entities?如何自动模拟自定义业务实体?
【发布时间】:2011-03-12 12:30:12
【问题描述】:

我需要为 30 种不同类型的自定义业务对象提供自动模拟。为了避免为每个实体中的所有公共属性编写手动模型代码的成本,我正在寻找一个可以在我的项目中使用的轻量级框架。 实际上,这不是用于单元测试,而是用于“预览”功能。

至于模拟的行为,我想按底层实体的数据类型。 例如,

public class Customer
{
    public int CustomerID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
}

所有int 属性= 1111,所有string 属性= XXXX,所有DateTime 属性将是DateTime.Now 等等。我认为我不需要DI/IoC 容器,因为在准备好模型之后实体,我必须将所有这些实体显式传递给一个方法(参数List<object> entities)。

规格: ASP.NET C# (.NET 3.5) DotNetNuke (5.X.X) 微软 SQL Server 2005

感谢您的 cmets 和建议!

【问题讨论】:

    标签: c# asp.net c#-3.0 asp.net-3.5 moq


    【解决方案1】:

    如果你有一个创建每个对象的工厂,你可以在工厂内部调用一个辅助方法,通过反射设置你的默认值。迭代对象属性并为众所周知的类型设置默认值。

    var customer = CustomerFactory.Create();
    

    否则,每次创建新实例时都必须调用辅助方法:

    var customer = DefaultValuesHelper.SetDefaults<Customer>(new Customer());
    

    【讨论】:

    • .. 我想我没有清楚地提到不同实体中的相同数据类型可以有不同的模型值。例如:Customer.CustomerID (1111)、Order.OrderID (2222)。
    • 你可以把这个逻辑放入助手中
    猜你喜欢
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多