как создать код модульного теста для методов - PullRequest
3 голосов
/ 20 октября 2008

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

Ответы [ 3 ]

7 голосов
/ 20 октября 2008

Прочтите раздел структуры базового тестирования Справочника по Библиотеке Python .

A базовый пример из документации:

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 голосов
/ 20 октября 2008

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

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

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

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

Вот пример , и вы можете прочитать немного больше о модульном тестировании питонов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...