Зачем в тесты, например, на создание топиков именовать 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); - что это?