Я являюсь автором JUnit TestRunner, вложенного в junit, который, я думаю, может делать то, что вы хотите: https://github.com/avh4/junit-nested
Однако из вашего примера непонятно, зачем вам нужны вложенные тесты. Типичная причина их использования - поделиться поведением при настройке, но вам следует подумать о том, более ли уместно иметь отдельные тестовые классы.
В любом случае, вот как вы можете это сделать с вложенной в junit: (Поскольку Nested
- это тестовый прогон, вам придется использовать MockitoAnnotations.initMocks()
вместо тестового прогона Mockito.)
import net.avh4.test.junit.Nested;
@RunWith(Nested.class)
public class ClientFormServiceTest {
@Mock
ClientFormService clientFormService;
@Before
public void given() {
MockitoAnnotations.initMocks(this);
}
public class GetNewClientFormTest {
@Mock
protected ClientForm result;
@Before
public void given() {
MockitoAnnotations.initMocks(this);
result = clientFormService.getNewForm();
}
@Test
public void should_do_something() {
}
}
public class CreateClientFormTest {
@Mock
protected ClientForm clientForm;
@Before
public void given() {
MockitoAnnotations.initMocks(this);
clientFormService.createForm(clientForm);
}
@Test
public void should_do_something() {
}
}
}