Task 5: Use TDD to Build The toString Method
To display the data for a particular
Job object, you need to implement a custom toString method. Rather than creating this method and then testing it, you will flip that process using TDD.
Create First Test for toString
Before writing your first test, consider how we want the method to behave:
When passed a
Jobobject, it should return a string that contains a blank line before and after the job information.
The string should contain a label for each field, followed by the data stored in that field. Each field should be on its own line.
ID: _______ Name: _______ Employer: _______ Location: _______ Position Type: _______ Core Competency: _______
If a field is empty, the method should add, “Data not available” after the label.
(Optional) If a Job object ONLY contains data for the id field, the method should return, “OOPS! This job does not seem to exist.”
In JobTest, add a new test named testToStringStartsAndEndsWithNewLine to check the first requirement. Be sure to use assertEquals to verify that these characters are correct, and to use the exact formatting demonstrated above.
This test should check that the string starts and ends with a new line.
Be sure to use
System.lineSeparator() to declare a new line. This is an
universal line break that works on a variety of operating systems (OS).
You will need to use the
lineSeparator() in the
Job class and the
Woo hoo! Failure is what we want here! Now you get to fix that.
Code toString to Pass the First Test
Job class, create a
toString method that passes the first test. Since the test only checks if the returned string starts and ends with a blank line, make that happen.
Do NOT add anything beyond what is needed to make the test pass. You will add the remaining behaviors for
toString as you code each new test.
Finish the TDD for
Code a new test for the second required behavior, named
testToStringContainsCorrectLabelsAndData. Then run the tests to make sure the new one fails.
toStringto make the new test pass. Also, make sure that your updates still pass all of the old tests.
Follow the same TDD process for the third requirement, creating a test named
As usual, the autograding tests are very picky about capitalization and spaces, so your code should match the format shown above exactly.
Job class is now complete and operates as desired.