【问题标题】:How get data templates for unit tests?如何获取单元测试的数据模板?
【发布时间】:2015-10-18 09:23:03
【问题描述】:

我需要为这个方法写一个单元测试:

public void MethodToTest(Data data)
{
     // ... some actions with data   
}

数据类:

public class Data
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Surname { get; set; }
    // ... hundred other properties
}

在我的测试中,我需要一些Data 类型的模板对象来操作它。 但是这个类有太多复杂的属性,无法手动编写这个“模板”。 在实际程序中,Data 对象是从 DB 中检索的。在调试时,我可以将其中一些序列化为 XML 或 JSON。但后来我需要以某种方式反序列化它以进行测试。相信有一种通用的模式和工具可以解决此类问题。那么什么是正确的方法呢?

【问题讨论】:

标签: c# unit-testing testing mocking tdd


【解决方案1】:

如果MethodToTest 只使用Data 类的一小部分,您可以定义一个接口来隔离这些属性:

public interface PersonalData {
  string Name {get; set; }
  int Age {get; set; }
  string Surname {get; set; }
}

public void MethodToTest (PersonalData data) { ... }

并让Data 实现此接口

public class Data: PersonalData { ... }

然后您可以使用实现PersonalData 的测试类进行测试(或者您可以使用模拟框架来生成PersonalData 的实现)。

【讨论】:

    猜你喜欢
    • 2013-10-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    相关资源
    最近更新 更多