Помощь в модульном тестировании C # - PullRequest
2 голосов
/ 01 июля 2011

Я изучаю C # (исходя из фона Java) и пытаюсь реализовать контрольные примеры в моей практике. Я рассмотрел несколько примеров создания тестовых случаев, но они были очень простыми и имели дело с очевидными ограничениями (т. Е. Угол между 0-360).

Я рассмотрел примеры создания форм и не смог найти ни одного примера реализации тестов с формами. Является ли это чем-то, что обычно делается, и если да, может ли кто-нибудь дать мне несколько примеров того, что я бы проверил, в следующем примере:

namespace TabControlExample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            CreateNewCompanyTab("Test Company 1");
            CreateNewCompanyTab("Test Company 2");

        }

        private void CreateNewCompanyTab(string companyName)
        {
            BaseCompanyPanel companyPanel = new BaseCompanyPanel();
            TabPage tabPage = new TabPage();

            // Set the tab text
            tabPage.Text = companyName;

            // Set the companyPanel.Parent value to tabPage
            // this will basically insert the companyPanel into the tab
            companyPanel.Parent = tabPage;
            tabControl.TabPages.Add(tabPage);

        }


    }
}


namespace TabControlExample
{
    public partial class BaseCompanyPanel : UserControl
    {
        public BaseCompanyPanel()
        {
            InitializeComponent();
        }
    }
}

В этом примере создается пользовательский элемент управления, который можно повторно использовать на нескольких вкладках.

Любая помощь приветствуется.

ТИА,

Брайан Эндерле

Ответы [ 2 ]

3 голосов
/ 01 июля 2011

Ваша бизнес-логика должна быть отделена от вашего пользовательского интерфейса.Если вы можете, вы можете изучить с использованием WPF и MVVM .

3 голосов
/ 01 июля 2011

FWIW, я бы не сказал, что вы должны использовать блочные тестовые формы, потому что они тесно связаны с базовой платформой Windows Forms.

Тем не менее, модульное тестирование может мотивировать / вынудить вас максимально отстранить логику от форм, поэтому вы можете протестировать эти фрагменты кода.

Если вы пытаетесь создать модульные тесты для кода, который, в свою очередь, ссылается на Windows Forms, вы можете использовать фиктивную среду, такую ​​как Moq, для создания форм Windows, на которые ссылается тестируемый код. Это, в свою очередь, требует от вас внедрения всех этих зависимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...