【发布时间】:2019-11-02 00:22:12
【问题描述】:
以下类层次结构对 TDD 有效吗?我有两个相关的类层次结构,我需要在每个创建者中使用一种类型的 Info 对象。您是否知道更好地做到这一点的常见模式(也许使用泛型)?这是可测试的吗?
namespace ClassTest
{
interface IProjectInfo
{
void Info1();
void Info2();
}
class ProjectAInfo : IProjectInfo
{
public ProjectAInfo(string projectAData)
{
ProjectAData = projectAData;
}
public string ProjectAData { get; private set; }
public void Info1() { }
public void Info2() { }
}
class ProjectBInfo : IProjectInfo
{
public ProjectBInfo(string projectBData)
{
ProjectBData = projectBData;
}
public string ProjectBData { get; private set; }
public void Info1() { }
public void Info2() { }
}
interface IProjectCreator
{
void Create1();
void Create2();
}
class ProjectACreator : IProjectCreator
{
public ProjectACreator(ProjectAInfo projectAInfo)
{
ProjectAInfo = projectAInfo;
}
public ProjectAInfo ProjectAInfo { get; private set; }
public void Create1() { }
public void Create2() { }
}
class ProjectBCreator : IProjectCreator
{
public ProjectBCreator(ProjectBInfo projectBInfo)
{
ProjectBInfo = projectBInfo;
}
public ProjectBInfo ProjectBInfo { get; private set; }
public void Create1() { }
public void Create2() { }
}
}
info 和 creator 类共享通用接口。创建者需要信息类进行操作。
谢谢!
【问题讨论】:
-
在不知道这些类实际做什么的情况下,很难给出有用的答案。告诉类是否可测试 - 为它们编写测试,你会知道没有其他人的意见。
标签: c# unit-testing inheritance tdd associations