The Second Test
One nice feature of test-driven development is that making one test pass often points the way to the next test. The goal of the next test cycle is to write a test that fails given the current code. At this point the code says that done? is always true, so you should create a case where done? is false:
|||it "knows that a project with an incomplete task is not done" do|
|||project = Project.new|
|||task = Task.new|
|||project.tasks << task|
This test is similar to the first one, but now you have a second class, Task, and a related attribute of the Project class, tasks. This time you’re assuming that a new task is undone, and therefore a project with an ...