我经常发现自己需要创建一个类作为一些数据的容器.它只是简单地使用,但我仍然需要创建类.像这样:
public class TempObject
{
public string LoggedInUsername { get; set; }
public CustomObject SomeCustomObject { get; set; }
public DateTime LastLoggedIn { get; set; }
}
public void DoSomething()
{
TempObject temp = new TempObject
{
LoggedInUsername = "test",
SomeCustomObject = //blah blah blah,
LastLoggedIn = DateTime.Now
};
DoSomethingElse(temp);
}
public void DoSomethingElse(TempObject temp)
{
// etc...
}
Run Code Online (Sandbox Code Playgroud)
通常我的临时对象具有更多属性,这就是我想首先将它们分组的原因.我希望有一种更简单的方法,例如匿名类型.问题是,当我将它传递给另一种方法时,我不知道该接受什么.这种类型是匿名的,所以我怎么能在另一方接受呢?
public void DoSomething()
{
var temp = new
{
LoggedInUsername = "test",
SomeCustomObject = //blah blah,
LastLoggedIn = DateTime.Now
}; …Run Code Online (Sandbox Code Playgroud) 我想要做的是创建一个具有不同属性的属性的类,将该类传递给另一个将使用适当的随机数据设置属性的类...这里是伪代码:
public class Customer
{
[Attribute("FirstName")]
private string CustomerFirstName;
public {get;set} //etc
[Attribute("LastName")]
private string CustomerLastName;
public {get;set;} //etc
[Attribute("DateTime")]
private DateTime CustomerSignUpDate;
public DateTime {get;set;} //yadda
[Attribute("Phone")]
private string CustomerPhone;
public string {get;set;} //yadda
}
Run Code Online (Sandbox Code Playgroud)
然后这样做
IList<Customer> CustomerList=ClassFillerOutClass(new Customer(),5);
Run Code Online (Sandbox Code Playgroud)
结果将是5个客户列表,其属性中包含适当的"随机"数据.
如果这不存在......我想我可以自己开始一个项目......如果没有必要,我只是不想重新发明轮子.
编辑:我忘了一块.我想用它作为测试工具.因此,在上面的示例中,我可以快速创建一个包含随机但适当值的5个客户的列表.然后说传递给我的持久性方法,并有一些我可以检查的东西.我试图避免每次为TDD目的手动创建一个填充的对象.
编辑2:好的,所以我开始自己动手...我将在本周末将它发布在Codeplex上并将其链接到这里...我显然不会这样做但是如果其他人想要继续工作它将是一个开始它.
我正在为遗留应用程序的输出编写一个解析器,由于没有关于文件语法的规范,我尽可能多地获取这些文件的样本.
现在我在实现解析器之前编写单元测试(因为没有其他理智的方法来执行此操作)但我不确定是否应该:
我倾向于使用第二种选择,因为我只测试我需要的东西,没有实际文件中包含的所有"真实世界"数据,但我担心我可能忘记测试一种或另一种可能性.
你怎么看?