Возможно, этот вопрос тривиален, но я все еще пытаюсь подогреть юнит-тесты в python, поэтому, пожалуйста, наберитесь терпения.:-) При попытке написать несколько собственных тестов встал следующий вопрос.Предполагая функцию, которая обрабатывает непустые строки:
class BadInputError(Exception): pass
class FooBar(object):
def take_a_string_and_do_something(param):
if param == '':
raise BadInputError('param should not be an empty string')
if param is None:
raise BadInputError('param should not be None')
if not isinstance(param, basestring):
raise BadInputError('param must be of type string)
# process nonempty string
Первое, что я хотел убедиться (при проверке юнитов), это то, что param
является только непустой строкой.Итак, я написал свои тестовые сценарии таким образом.
class TestFooBar(unittest.TestCase):
def test_take_a_string_and_do_something(self):
foo = FooBar()
self.failUnlessRaises(BadInputError, foo.take_a_string_and_do_something, '')
self.failUnlessRaises(BadInputError, foo.take_a_string_and_do_something, None)
self.failUnlessRaises(BadInputError, foo.take_a_string_and_do_something, 234)
Это приемлемо или я совершаю тяжелую ошибку новичка?Ваш отзыв значит очень много!