Допустимая иерархия классов? - PullRequest
2 голосов
/ 02 ноября 2019

Действительна ли следующая иерархия классов для 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 имеют общие интерфейсы. Создателю нужен информационный класс для своей работы.

Спасибо!

1 Ответ

2 голосов
/ 02 ноября 2019

Это не TDD. Цель TDD - сначала написать тест. Если вы сначала напишите свой тест, то из этого теста выйдет иерархия классов, и она будет тестируемой. Чтобы лучше понять TDD, взгляните на:

Правила TDD от дяди Боба

Если у вас просто вопрос: это тестируемый? Да, это проверяемое.

...