title: Should I change the naming convention for my unit tests?
body: <p>I currently use a simple convention for my unit tests. If I have a class named "EmployeeReader", I create a test class named "EmployeeReader.Tests. I then create all the tests for the class in the test class with names such as:</p>
  
  <ul>
  <li>Reading_Valid_Employee_Data_Correctly_Generates_Employee_Object</li>
  <li>Reading_Missing_Employee_Data_Throws_Invalid_Employee_ID_Exception</li>
  </ul>
  
  <p>and so on.</p>
  
  <p>I have recently been reading about a <a href="http://elegantcode.com/2008/05/01/thanks-to-bdd/" rel="noreferrer">different type of naming convention</a> used in BDD. I like the readability of this naming, to end up with a list of tests something like:</p>
  
  <ul>
  <li>When_Reading_Valid_Employee (fixture)
  
  <ul>
  <li>Employee_Object_Is_Generated (method)</li>
  <li>Employee_Has_Correct_ID (method)</li>
  </ul></li>
  <li>When_Reading_Missing_Employee (fixture)
  
  <ul>
  <li>An_Invalid_Employee_ID_Exception_Is_Thrown (method)</li>
  </ul></li>
  </ul>
  
  <p>and so on.</p>
  
  <p>Has anybody used both styles of naming? Can you provide any advice, benefits, drawbacks, gotchas, etc. to help me decide whether to switch or not for my next project?</p>