Middle
How does the concept of dependency injection improve the design of a test automation framework?
sobes.tech AI
Answer from AI
Dependency Injection (DI) improves test automation design by providing loose coupling of components. Instead of tests creating dependencies themselves (such as browser drivers, services, configurations), these dependencies are passed from outside. This allows:
- Easy substitution of real objects with mocks or stubs for test isolation.
- Increased code reuse and simplified maintenance.
- Improved readability and structure of tests, as dependencies are explicitly visible in constructors or methods.
Example in Java using DI via constructor:
public class LoginTest {
private final WebDriver driver;
public LoginTest(WebDriver driver) {
this.driver = driver;
}
@Test
public void testLogin() {
LoginPage page = new LoginPage(driver);
page.login("user", "pass");
assertTrue(page.isLoggedIn());
}
}
In this example, the driver is passed from outside, making it easy to replace with a mock or another browser without changing the test.