February 2018
Intermediate to advanced
406 pages
9h 52m
English
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 |
| | expect(project.done?).to be_falsy |
| | end |
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 ...