Форум сайта python.su
0
Здравствуйте
Есть некая функция foo, на вход которой идет строка s, эта функция сверяет её с шаблоном и выдаёт True (совпадает с шаблоном) или False (не совпадает с шаблоном).
Каким образом лучше протестировать работу этой функции?
Будет ли удовлетворительным, если составить юнит тест типа:
import unittest import foo class TestFoo(unittest.TestCase): right_examples = (..., ..., ...) wrong_examples = (..., ..., ...) def test_right(self): '''foo should give True result with right input''' for s in self.right_examples: result = foo.foo(s) self.assertEqual(True, result) def test_wrong(self): '''foo should give False result with wrong input''' for s in self.wrong_examples: result = foo.foo(s) self.assertEqual(False, result) if __name__ == '__main__': unittest.main()
Офлайн
253
:) Обычно еще тестируют подачей не строки. Тест должен по возможности покрывать все возможные варианты. Правильно вы тестируете или нет можно понять только если вы шаблон приведете и контрольные строки.
Офлайн
0
doza_andТо есть для полного тестирования желательно добавить подобный метод? :Обычно еще тестируют подачей не строки.
def test_not_a_string(self): '''foo should fail with not a string input''' self.assertRaises(foo.TypeError , foo.foo, 57)
doza_andТестируется название электронной почты на удовлетворение неким правилам. Соответственно в right_examples лежат названия эл. почты, удовлетворяющие правилам, а в wrong_examples - вручную набранные неверные названия (на каждое правило по примеру).
Тест должен по возможности покрывать все возможные варианты. Правильно вы тестируете или нет можно понять только если вы шаблон приведете и контрольные строки.
Офлайн
857
the_authorво-первых, подумай, как бы ты проверял её вручную, что бы ты проверял, на каких моментах она может сломаться
Каким образом лучше протестировать работу этой функции?
the_authorиспользуй специальные assert'ы (self.assertTrue)self.assertEqual(True, result)
Офлайн
33
the_author
Каким образом лучше протестировать работу этой функции?
Отредактировано Budulianin (Март 7, 2014 20:47:15)
Офлайн
33
the_author
Тестируется название электронной почты на удовлетворение неким правилам.
Офлайн