L — Liskov Substitution Principle(Принцип замены Лискова)

Объекты суперкласса должны быть заменяемы объектами его подклассов, не влияя при этом на корректность программы. В автоматизации тестирования этот принцип подчеркивает важность написания тестов, независимых от деталей реализации тестируемой системы. Придерживаясь этого принципа, мы можем гарантировать, что наши тесты останутся надежными и не будут затронуты изменениями в базовой кодовой базе.

Например: написание тестов с использованием абстракций высокого уровня (например, интерфейсов или абстрактных классов), а не конкретных реализаций, что позволяет нам заменять реализации, не затрагивая тесты.

// Принцип подстановки Лискова (LSP) 
// Пример: написание тестов с использованием абстракций высокого уровня 

public interface ILoginPage
{
    void EnterCredentials(string username, string password);
    void ClickLoginButton();
}

public class LoginPage : ILoginPage
{
    public void EnterCredentials(string username, string password)
    {
        // Реализация для ввода учетных данных
    }

    public void ClickLoginButton()
    {
        // Реализация для нажатия кнопки входа в систему
    }
}

public class LoginTest
{
    [Test]
    public void UserCanLoginSuccessfully()
    {
        ILoginPage loginPage = new LoginPage();
        loginPage.EnterCredentials("username", "password");
        loginPage.ClickLoginButton();
        // Проверка утверждения...
    }
}

Применение принципа замены Лискова в нашем решении для автоматизации тестирования помогает гарантировать, что наши тесты удобны в сопровождении, расширяемы и пригодны для повторного использования. Это достигается за счет использования полиморфизма для создания адаптируемых и универсальных тестов, что делает их пригодными для изменений в нашем приложении.

Last updated

Was this helpful?