Understanding the sample unit test
The unit test is the first test contained in tests.py
, which begins:
""" This file demonstrates two different styles of tests (one doctest and one unittest). These will both pass when you run "manage.py test". Replace these with more appropriate tests for your application. """ from django.test import TestCase class SimpleTest(TestCase): def test_basic_addition(self): """ Tests that 1 + 1 always equals 2. """ self.failUnlessEqual(1 + 1, 2)
The unit test starts by importing TestCase
from django.test
. The django.test.TestCase
class is based on Python's unittest.TestCase
, so it provides everything from the underlying Python unittest.TestCase
plus features useful for testing Django applications. These Django extensions to unittest.TestCase
will be covered in detail in Chapter 3, Testing 1, 2, 3: Basic Unit Testing and Chapter 4, Getting Fancier: Django Unit Test Extensions. The sample unit test here doesn't actually need any of that support, but it does not hurt to base the sample test case on the Django class anyway.
The sample unit test then declares a SimpleTest
class based on Django's TestCase
, and defines a test method named test_basic_addition
within that class. That method contains a single statement:
self.failUnlessEqual(1 + 1, 2)
As you might expect, that statement will cause the test case to report a failure unless the two provided arguments are equal. As coded, we'd expect that test to succeed. We'll verify that later in this chapter, when we get to actually running the tests. But first, let's take a closer look at the sample doctest.