C# 有效的类层次结构?

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

以下类层次结构对TDD有效吗?我有两个相关的类层次结构,我需要在每个创建者中使用一种类型的信息对象。你知道做得更好的通用模式吗(可能是泛型)?这是可测试的吗

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编写应用程序时,至少会有好的设计。至少,这是我的经历。你写了什么测试?为什么不用一些业务用例发布您的测试,并询问您是否正确地进行了测试?如果不知道这些类实际上做了什么,就很难给出有用的答案。为了说明类是可测试的还是不可测试的——为它们编写测试,你将不需要别人的意见就能知道。