Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

When you are coding, how often do you run your unit test suite? Once a day? Once an hour? Once a minute? Could you even run the suite once a minute if you wanted to? How we came up with the idea for this project

Ashcroft is named after the current attorney general of the USA, John Ashcroft, who has a reputation for being extremely conservative. Regardless of your personal political leanings, as an agile and test-infected Java developer, we'd like you to consider the benefits of adhering to strict, almost draconian, limits on what you allow yourself and your fellow team-members to code into your unit tests.

We should clarify, right up front, that these restrictions apply only to unit tests and not system or intergration tests, which are also of great importance to the success of any project. However, your unit tests, one for each class in your codebase, should be clean, decoupled from one another and ultrafast. You should be able to run thousands of unit tests and get your green bar in a few seconds. Achieving that kind of unit testing performance takes major discipline on the part of the developer, and Ashcroft helps keep you in on the straight-and-narrow path, by failing tests which stray from best practices.

Ten Commandments of Unit Testing

  1. Thou shalt write isolated tests
  2. Thou shalt not access files during unit tests

there are more of these to come... we are currently soliciting feedback

====

Kent Beck about Singletons: "How do you provide global variables in languages without global variables? Don't. Your programs will thank you for taking the time to think about design instead." Test Driven Design By Example (2003) - Beck

Remember, the most severe restrictions often lead to the most creative solutions.

  • No labels