title: What are the differences between setUpClass, setUpTestData and setUp in TestCase class?
body: <p>More specifically, what are the use cases for each?</p>
  <p>What I've understood so far:</p>
  <h1>setUpClass</h1>
  <ul>
  <li>This method runs once, before all the tests in a test class</li>
  </ul>
  <h1>setUpTestData</h1>
  <ul>
  <li>This method runs once if the DB has transaction support. Otherwise it runs before each test.</li>
  </ul>
  <h1>setUp</h1>
  <ul>
  <li>This method runs before each test in a test class.</li>
  </ul>
  <p>From the understanding I mentioned above, it seems setUpTestData lies in the area between setUpClass and setUp. Why do we need a class level method for setuUpTestData while the same effect could be achieved by either <code>setUpClass</code> or <code>setUp</code> or a combination of the both?</p>