Зачем в тесты, например, на создание топиков именовать signUpAnd... ведь проверяется то создание топика, поэтому не важно, что перед этим была регистрация. Это прекрасно можно посмотреть и внутри теста (конечно, если это не глубоко зарыто, но об этом далее)
Пример теста - signUpAndCreateTopicInBranch()
@Test
public void signUpAndCreateTopicInBranch() throws Exception {
Topic topic = new Topic("subject123", "message").withBranch("Classical Mechanics");
Topics.signUpAndCreateTopic(topic);
}2. использование методов signUpAndCreateTopic
Зачем нужно использовать этот метод? а так же аналогичный loginAndCreateTopic.
Логично действия signUp и createTopic выполнять по отдельности
public static Topic signUpAndCreateTopic(Topic topic) throws ValidationException, PermissionsDeniedException {
User user = User.admin();
Users.signIn(user);
topic.withTopicStarter(user);
return createTopic(topic);
}Тест1:
@Test
public void createTopicWithTitleAndMessage_ShouldPass_JC_13() throws Exception {
Topic topic = new Topic("subject", "message");
Topic createdTopic = Topics.signUpAndCreateTopic(topic);
Assert.assertTrue(Topics.isCreated(createdTopic));
}
Тест2:
@Test
public void createTopicWithTitleAndMessage_ShouldPass_JC_13() throws Exception {
User user = Users.signUp();
Users.signIn(user);
Topic topic = new Topic("subject", "message");
Topic createdTopic = Topics.createTopic(topic);
Assert.assertTrue(Topics.isCreated(createdTopic));
}Строчек так получается больше, но так понятнее, что происходит.
topic.withTopicStarter(user); - что это?

Английский
Украинский