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?