以下类层次结构对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() { }
}
}
信息和创建者类共享公共接口。创建者需要信息类来进行操作。
谢谢!
这不是TDD。使用TDD的目的是首先编写测试。如果您首先编写测试,则该测试将产生一个类层次结构,并且该层次结构是可测试的。为了更好地了解TDD,请查看:
如果您的问题是:这可以测试吗?是的,可以测试。