C# 有效的类层次结构?
以下类层次结构对TDD有效吗?我有两个相关的类层次结构,我需要在每个创建者中使用一种类型的信息对象。你知道做得更好的通用模式吗(可能是泛型)?这是可测试的吗C# 有效的类层次结构?,c#,unit-testing,inheritance,tdd,associations,C#,Unit Testing,Inheritance,Tdd,Associations,以下类层次结构对TDD有效吗?我有两个相关的类层次结构,我需要在每个创建者中使用一种类型的信息对象。你知道做得更好的通用模式吗(可能是泛型)?这是可测试的吗 namespace ClassTest { interface IProjectInfo { void Info1(); void Info2(); } class ProjectAInfo : IProjectInfo { public Projec
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类共享公共接口。创建者的操作需要info类
谢谢大家! 这不是TDD。使用TDD,目的是首先编写测试。如果您首先编写测试,那么该测试将产生一个类层次结构,并且它是可测试的。为了更好地理解TDD,请查看:
如果你的问题是:这是可测试的吗?是的,它是可测试的。问题本身是关于层次结构的。我的意思是这些层次结构在有效的TDD构造中是否可以接受。我需要一位TDD专家的建议,他可以发现这个结构中的设计错误。问题是我们不知道你想要实现什么。当您使用TDD编写应用程序时,至少会有好的设计。至少,这是我的经历。你写了什么测试?为什么不用一些业务用例发布您的测试,并询问您是否正确地进行了测试?如果不知道这些类实际上做了什么,就很难给出有用的答案。为了说明类是可测试的还是不可测试的——为它们编写测试,你将不需要别人的意见就能知道。