有效的类层次结构?

问题描述 投票:0回答:1

以下类层次结构对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() { }
    }
}

信息和创建者类共享公共接口。创建者需要信息类来进行操作。

谢谢!

c# unit-testing inheritance tdd associations
1个回答
0
投票

这不是TDD。使用TDD的目的是首先编写测试。如果您首先编写测试,则该测试将产生一个类层次结构,并且该层次结构是可测试的。为了更好地了解TDD,请查看:

The Rules of TDD by Uncle Bob

如果您的问题是:这可以测试吗?是的,可以测试。

© www.soinside.com 2019 - 2024. All rights reserved.