doctest
Peut être écrit en docstring. Peut être utilisé comme légende.
Importez doctest, écrivez ce qui suit dans docstring et appelez doctest.testmod () ''. Lors de l'exécution, utilisez
python $ {filename} .py -v``.
sample.py
# -*- coding: utf-8 -*-
import doctest
def twice(n):
"""Une fonction qui double l'argument et renvoie
>>> twice(8)
16
>>> twice(1850923)
3701846
"""
return n * 2
if __name__ == "__main__":
doctest.testmod()
Courir
python sample.py -v
résultat
Trying:
twice(8)
Expecting:
16
ok
Trying:
twice(1850923)
Expecting:
3701846
ok
1 items had no tests:
__main__
1 items passed all tests:
2 tests in __main__.twice
2 tests in 2 items.
2 passed and 0 failed.
Test passed.
Lire la docstring
python
import sample
help(sample.twice)
twice(n)
Une fonction qui double l'argument et renvoie
>>> twice(8)
16
>>> twice(1850923)
3701846
C'est ... merci ...
** Lors du test de la méthode d'instance **
sample.py
# -*- coding: utf-8 -*-
class IntUtil:
def twice(self, n):
"""Une fonction qui double l'argument et renvoie
>>> mine.twice(8)
16
>>> mine.twice(1850923)
3701846
"""
return n * 2
if __name__ == "__main__":
import doctest
doctest.testmod(extraglobs = {'mine': IntUtil()})
unittest
Le test unitaire général et le test d'intégration sont effectués dans ce module
setUp: exécuter au démarrage tearDown: courir à la fin
functions
Nom de la fonction | La description |
---|---|
assertEqual(a, b, msg=None) | a == b |
assertNotEqual(a, b, msg=None) | a != b |
assertTrue(expr, msg=None) | bool(x) is True |
assertFalse(x) | bool(x) is False |
assertIs(a, b) | a is b |
assertIsNot(a, b) | a is not b |
assertIsNone(x) | a is None |
assertIsNotNone(x) | a is not None |
assertIn(a, b) | a in b |
assertNotIn(a, b) | a not in b |
assertIsInstance(a, b) | isinstance(a, b) |
assertNotIsInstance(a, b) | not isinstance(a, b) |
sample_test.py
# -*- coding: utf-8 -*-
import unittest
import sample
class SampleTest(unittest.TestCase):
def setUp(self):
self.util = sample.IntUtil()
def test_twice(self):
#Est-ce la même valeur que le nombre ajouté?
import random
roop = 0
while roop != 10000:
n = random.randint(0, 100)
ans = n + n
self.assertEqual(self.util.twice(n), ans)
roop += 1
if __name__ == '__main__':
unittest.main()
Recommended Posts