I have pairs of tests in my project which I would like to run sequentially in separate methods. Normally I would use a DataProvider to generate the input for the test:
@DataProvider
public Object[][] getUsers() {
// generate input for test2();
}
@Test(dataProvider = "getUsers")
public void test2(User user) {
assertSomething(user);
}
but here I need both of these methods to act like tests as I have test logic, which does not belong to data providers.
So I would like something like this:
@Test
public Object test1() {
User user = createUser();
assertSomething(user);
return user.getProperty();
}
@Test // depends on test1 - I do not want to execute this test if test1 fails.
public void test2(Object userProperty) {
assertSomethingElse(userProperty);
}
I could in fact put the logic from test1 to test2 to achieve what I want, but I wondered if there are more intelligent ways to do it.