用于单元测试的虚拟ObjectList生成器

时间:2012-07-12 07:12:04

标签: c# unit-testing dummy-data

有人可以告知c#中是否有任何好的框架会生成虚拟对象和列表,这样我们就不需要手动生成存根数据了吗?

5 个答案:

答案 0 :(得分:6)

您可以尝试NBuilder。它的目的是快速生成测试对象。<​​/ p>

如果您有员工类:

public class Employee
{
    public string Name { get; set; }
    public DateTime Birthday { get; set; }
} 

生成10个Employee对象的列表很简单,如下所示:

var employees = Builder<Employee>.CreateListOfSize(10).Build();

它将为对象的所有字段生成唯一的增量值:

Name1 7/12/2012
Name2 7/13/2012
Name3 7/14/2012
...

此外,NBuilder具有强大的流畅界面,可以为任何生成的对象设置自定义值:

var employees = Builder<Employee>.CreateListOfSize(10)
    .TheFirst(1).With(e => e.Name = "Sergey")
    .All().With(e => e.Address = Builder<Address>.CreateNew().Build())
    .Build();

你也可以看看:

答案 1 :(得分:1)

我喜欢使用的框架并按您的要求执行以下操作:Rhino Mocks

这适用于C#及其优越性。

答案 2 :(得分:0)

我喜欢使用的框架并按您的要求执行以下操作:Unitils

但又一次,我不知道你问的编程语言是什么?建议的是Java。

答案 3 :(得分:0)

如果你需要创建接口或抽象类的虚假实现,那么可以使用一堆“模拟框架”。其中一个是哈利提到的Rhimo Mocks。对于你作为这个领域的初学者,我也建议Moq,因为它比Rhino Mocks(恕我直言)更直接。

答案 4 :(得分:0)

每个人都喜欢真实的假数据,使用 Bogus 库。

<块引用>
var faker = new Faker("en");

var emailList = Enumerable.Range(1, 5)
      .Select(_ => faker.Internet.Email())
      .ToList();

//OUTPUT:
Gustave83@hotmail.com    
Evie33@gmail.com 
Abby_Wilkinson@yahoo.com 
Cecilia.Hahn@yahoo.com   
Jasen.Waelchi85@gmail.com