Sobes.tech
Back to questions
Junior — Middle
69

Можешь привести пример проведения модульного тестирования для графического пользовательского интерфейса?

Companies where asked
УК Первая

Answer from AI

sobes.tech AI

Для модульного тестирования графического пользовательского интерфейса (GUI) в C# часто используют фреймворки, которые позволяют имитировать взаимодействие пользователя с элементами интерфейса и проверять их поведение.

Пример с использованием NUnit и библиотеки NUnit.Forms для тестирования Windows Forms:

using NUnit.Framework;
using NUnit.Extensions.Forms;

public class MyFormTests : NUnitFormTest
{
    private MyForm form;

    [SetUp]
    public void SetUp()
    {
        form = new MyForm();
        form.Show();
    }

    [TearDown]
    public void TearDown()
    {
        form.Close();
    }

    [Test]
    public void ButtonClick_ShouldChangeLabelText()
    {
        // Найти кнопку по имени
        ButtonTester button = new ButtonTester("myButton", form);
        LabelTester label = new LabelTester("myLabel", form);

        // Проверить начальный текст
        Assert.AreEqual("Начальный текст", label.Text);

        // Клик по кнопке
        button.Click();

        // Проверить, что текст изменился
        Assert.AreEqual("Текст после клика", label.Text);
    }
}

В этом примере мы создаём форму, имитируем клик по кнопке и проверяем изменение текста на метке. Такой подход позволяет тестировать логику взаимодействия в UI без необходимости ручного тестирования.