views:

374

answers:

3

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

+6  A: 

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()
xsl
+1  A: 

Here's an example and you might want to read a little more on pythons unit testing.

Fabian Buch
+3  A: 

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.
David Eyk