Как я могу выполнить параллельный тест через JUnit (например, с 100 потоками) в сочетании с ClassRules, такими как ResourceTestRule (dropwizard) и DAOTestRule? Я думаю, что для каждого потока я должен создать новый ResourceTestRule, верно? я переместил создание экземпляра ResourceTestRule в метод myTest, но получил nullPointerException ....
Пример:
@RunWith(ConcurrentTestRunner.class)
public class ConcurrenceTest {
String TOKEN = "blabla";
@Rule
public DAOTestRule myDatabase =
DAOTestRule.newBuilder().addEntityClass(MyEntity.class).build();
private static MyManager myManager = new MyManager(myDatabase);
@ClassRule
public static final ResourceTestRule resources = ResourceTestRule.builder()
.addProvider(RolesAllowedDynamicFeature.class).addProvider(new AuthDynamicFeature(OAUTH_HANDLER))
.addProvider(new AuthValueFactoryProvider.Binder<>(AccessTokenPrincipal.class))
.addProvider(new JerseyViolationExceptionMapper()).addProvider(new JsonProcessingExceptionMapper())
.addResource(new MyResource(MyManager)).build();
@Test
@ThreadCount(100)
public void myTest() {
MyRequest myRequest = new MyRequest(1, "abc");
Response response = resources.target("/things").request().header("Authorization", TOKEN)
.post(Entity.json(myRequest));
}
}