2008-10-20 2 views
3

Я хочу написать код для модульного теста, чтобы проверить код приложения. У меня разные методы, и теперь я хочу протестировать эти методы один за другим в скрипте python. но я не понимаю, как писать. может ли кто-нибудь дать мне пример небольшого кода для модульного тестирования в python. Я благодаренкак сгенерировать единичный тестовый код для методов

ответ

7

Прочитано unit testing framework section из Python Library Reference.

basic example из документации:

import random 
import unittest 

class TestSequenceFunctions(unittest.TestCase): 

    def setUp(self): 
     self.seq = range(10) 

    def testshuffle(self): 
     # make sure the shuffled sequence does not lose any elements 
     random.shuffle(self.seq) 
     self.seq.sort() 
     self.assertEqual(self.seq, range(10)) 

    def testchoice(self): 
     element = random.choice(self.seq) 
     self.assert_(element in self.seq) 

    def testsample(self): 
     self.assertRaises(ValueError, random.sample, self.seq, 20) 
     for element in random.sample(self.seq, 5): 
      self.assert_(element in self.seq) 

if __name__ == '__main__': 
    unittest.main() 
4

Возможно, лучше всего начать с данного примера unittest. Некоторые стандартные рекомендации:

  • положите все свои тесты в папку tests в корне вашего проекта.
  • напишите один тестовый модуль для каждого тестируемого модуля python.
  • испытательные модули должны начинаться со слова test.
  • Методы испытаний должны начинаться со слова test.

Когда вы освоите unittest (и это не займет много времени), есть некоторые хорошие расширения к нему, которые сделают жизнь проще, так как тесты растут число и объем:

  • nose - легко найти и запустить все ваши тесты и многое другое.
  • testoob - цветной выход (и многое другое, но поэтому я его использую).
  • pythoscope - не пробовал, но это автоматически сгенерирует (сбой) тестовые заглушки для вашего приложения. Должен сэкономить много времени, написав шаблонный код.
Смежные вопросы