Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to generate unit test code for methods

i want to write code for unit test to test my application code. I have different methods and now want to test these methods one by one in python script. but i do not how to i write. can any one give me example of small code for unit testing in python. i am thankful

like image 833
user17451 Avatar asked Dec 27 '25 14:12

user17451


2 Answers

Read the unit testing framework section of the Python Library Reference.

A basic example from the documentation:

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()
like image 167
xsl Avatar answered Dec 31 '25 02:12

xsl


It's probably best to start off with the given unittest example. Some standard best practices:

  • put all your tests in a tests folder at the root of your project.
  • write one test module for each python module you're testing.
  • test modules should start with the word test.
  • test methods should start with the word test.

When you've become comfortable with unittest (and it shouldn't take long), there are some nice extensions to it that will make life easier as your tests grow in number and scope:

  • nose -- easily find and run all your tests, and more.
  • testoob -- colorized output (and more, but that's why I use it).
  • pythoscope -- haven't tried it, but this will automatically generate (failing) test stubs for your application. Should save a lot of time writing boilerplate code.
like image 41
David Eyk Avatar answered Dec 31 '25 03:12

David Eyk



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!