Size: a a a

Rust — русскоговорящее сообществo

2020 April 13

A

Adv0cat in Rust — русскоговорящее сообществo
не, ну вообще реальный кейс, есть группа тестов, перед которыми и после которых нужно сделать однотипное действие
источник

A

Adv0cat in Rust — русскоговорящее сообществo
создать что-то и удалить что-то
источник

ML

Mike Lubinets in Rust — русскоговорящее сообществo
Это надо писать руками в каждом тесте
источник

🐝

🐝 in Rust — русскоговорящее сообществo
в РФ есть вакансии на расте или это пока экзотика?
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Mike Lubinets
Это надо писать руками в каждом тесте
Это занудство какойе-то
источник

ML

Mike Lubinets in Rust — русскоговорящее сообществo
Mike Lubinets
Это надо писать руками в каждом тесте
Специального механизма нет, увы.

Я ничего не имею против отдельных независимых циклов setup-teardown для каждого теста, я очень против общего setup-teardown, поскольку после первого же теста все остальные пребывают в состоянии суперпозиции.
источник

ML

Mike Lubinets in Rust — русскоговорящее сообществo
🐝
в РФ есть вакансии на расте или это пока экзотика?
Есть, но это пока экзотика
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Mike Lubinets
Специального механизма нет, увы.

Я ничего не имею против отдельных независимых циклов setup-teardown для каждого теста, я очень против общего setup-teardown, поскольку после первого же теста все остальные пребывают в состоянии суперпозиции.
То что нет механизма это нормально, но говорить, что “это вам не нужно” - не надо так))
источник

ML

Mike Lubinets in Rust — русскоговорящее сообществo
Adv0cat
То что нет механизма это нормально, но говорить, что “это вам не нужно” - не надо так))
А ты прочитал второй абзац моего сообщения?
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Mike Lubinets
А ты прочитал второй абзац моего сообщения?
Да) Но ведь то же самое будет и при вручную написанной функции в каждом тесте, или не понимаю о чем вы)
источник

ML

Mike Lubinets in Rust — русскоговорящее сообществo
Adv0cat
Да) Но ведь то же самое будет и при вручную написанной функции в каждом тесте, или не понимаю о чем вы)
У человека общий стейт в юнит тестах. Проверка его наличия -- вопрос совершенно вторичный.

Такую иерархию нужно создавать через tempdir, например, по хорошему, изолированную для каждого теста.
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Mike Lubinets
У человека общий стейт в юнит тестах. Проверка его наличия -- вопрос совершенно вторичный.

Такую иерархию нужно создавать через tempdir, например, по хорошему, изолированную для каждого теста.
Разве общий стейт? Если я правильно понял, человеку нужно что-то вот такое:
Грубо говоря вместо
do_init() {}
#[test]
some_test() {
   do_init();
}
#[test]
other_test() {
   do_init();
}

нужно как-то вот так))
#[before_eack_test=“some”]
do_init() {}
#[test=“some”]
some_test() {}
#[test=“some”]
other_test() {}
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Т.е. шо так, шо так эта функция будет вызвана в самом начале каждого теста, просто человек вручную писать не хочет
источник

A

Adv0cat in Rust — русскоговорящее сообществo
А вы о другой проблеме)
источник

ML

Mike Lubinets in Rust — русскоговорящее сообществo
Ну там же черным по белому написано: создать иерархию, перед каждым тестом проверять.
Следовательно иерархия общая для всех юнит тестов.
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Mike Lubinets
Ну там же черным по белому написано: создать иерархию, перед каждым тестом проверять.
Следовательно иерархия общая для всех юнит тестов.
Хм… вы правы, не догладел, но даже так, мой вариант помог бы человеку, просто в do_init была бы проверка существует ли что-то, если нет - создать 😉
источник

A

Adv0cat in Rust — русскоговорящее сообществo
но такого механизма нет, как я понял, и это жаль)
источник

ML

Mike Lubinets in Rust — русскоговорящее сообществo
Adv0cat
но такого механизма нет, как я понял, и это жаль)
Разделяю вашу боль)
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Mike Lubinets
Разделяю вашу боль)
Хм… а подскажите, чтобы добавить такой механизм, куда обратиться поканючить, чтобы сделали, или куда пулреквест делать? 😄
источник

ML

Mike Lubinets in Rust — русскоговорящее сообществo
Adv0cat
Хм… а подскажите, чтобы добавить такой механизм, куда обратиться поканючить, чтобы сделали, или куда пулреквест делать? 😄
Даже не знаю, можно поискать по issues в гитхабе rust, по ключевым словам
источник