????????????? ??????? signUpAndCreateTopic, ?????????? ?????? signUpAnd...

 
 
 
Сообщения:1
1. именование тестов signUpAnd...
Зачем в тесты, например, на создание топиков именовать 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); - что это?
Изменен:11 окт 2013 16:11
 
 
Сообщения:53
да, видимо была попытка сделать удобно "уан клик" так сказать. Конечно нужно разделять на атомарные методы и их использовать
 
 
Сообщения:365
Собственно да - идея была уменьшить количество строк кода и убрать лишнюю информацию из тестов. Когда мы делаем тесты для топика нам вовсе не важен пользователь, поэтому хотелось это убрать как мы убрали заполнение случайными значениями то, что не заполнено явно.

Думаю, если мы хотим чтоб авто-тесты походили на ручные, то нужно разделять и делать логин явно. Но с точки зрения разработки это может создать проблемы с поддержкой (больше строк - больше поддержки). Имеет смысл попробовать всегда явно вызывать Users.signUp(), Users.signIn(), а там если будут проблемы с поддержкой, уже думать о рефакторинге.
 
Модераторы:MariiactapobepMasha NissemasyangesserLuckyellekatvitalik14avduntiycactus_1Shogunlamaocactus_2AlisaTestTest_TestTest_Test2krotovzdubiiREISETest_AlexTPavel GradobikKeiranKikooswatikQAPashaDentonitedvantvirtus80v2SpooonkaHelmax27alex_popov2alex_popovAndrey S.valentin_ospMuzhichokPetraStilltest_07.03newuser123valentin_testvalentin_testuaPetra_EvaodonacerAlisa Kalashnikovafanyfanyuserjc1422!@#$%&()_<>}{]['/?~```JulikIgorSssigorssalegggaaaaaaaaaaaaaaaaaaaaaaaaaatest11huba2LEYApoliplohubbniksKarasikНадежда ФедороваMicrasturкококоLizanata_cknebytWizliVarroAleksandrKLaMaCHtes3tadmin
Сейчас эту тему просматривают:Нет