Подтвердить что ты не робот

Методы без тестирования в тестовой среде Python

Хорошо, поскольку поиск Google не помогает мне через некоторое время (даже при использовании правильных ключевых слов).

У меня есть класс, простирающийся от TestCase, в котором я хочу иметь некоторые вспомогательные методы, которые не будут выполняться как часть теста, они будут использоваться для создания некоторых издевающихся объектов и т.д., вспомогательные вещи для почти любых тест.

Я знаю, что могу использовать декоратор @skip, поэтому unittest не запускает определенный метод тестирования, но я думаю, что уродливый взломать для моей цели любые советы?

Заранее спасибо, сообщество: D

4b9b3361

Ответ 1

Я считаю, что вам не нужно ничего делать. Ваши вспомогательные методы не должны начинаться с test_.

Ответ 2

Единственными методами, которые unittest будет выполнять [1], являются setUp, все, что начинается с test и tearDown [2], в этом порядке. Вы можете создавать вспомогательные методы и называть их чем угодно, кроме трех вещей, и они не будут выполняться с помощью unittest.

Вы можете думать о setUp как __init__: если вы генерируете макетные объекты, которые используются несколькими тестами, создайте их в setUp.

def setUp(self):
    self.mock_obj = MockObj()

[1]: Это не совсем так, но это основные 3 группы методов, на которые вы можете сосредоточиться при написании тестов.

[2]: по устаревшим причинам unittest будет выполнять как test_foo, так и testFoo, но test_foo является предпочтительным стилем в эти дни. setUp и tearDown должны отображаться как таковые.

Ответ 3

Тест-бегун будет выполнять только непосредственно методы, начинающиеся с test, поэтому просто убедитесь, что имена ваших вспомогательных методов не начинаются с test.