This gets very messy:
@Test private void testAPI() { String json = "{\"someobject\":" + "{" + "\"attr1\": 123," + "\"attr2\": {" + // getting tired yet? ... "\"anotherattr\": \"foobar\"" + "}" + "}" + "}"; // clear as mud, right? // test here...
This definitely was impeding the velocity of my test driven development progress. Also, I felt like the next person who looks at this test is never going to want to maintain this test...
I know I have looked at a test and thought to myself, "too much scary syntax, why bother fixing it".
Well, after some quick googling, I found a solution that I like so far: http://www.adrianwalker.org/2011/12/java-multiline-string.html
This code provides the @Multiline java annotation and it takes the comment before a String declaration and shoves it into the string variable.
Now my code looks like this:
@Test private void testAPI() { /** { "someobject": { "attr1": 123, "attr2": {"anotherattr": "foobar"} } } */ @Multiline String json; // test here...
Do you think this look better? I think so.
I was able to use this guys github to install the annotation in eclipse with minimal effort:
https://github.com/benelog/multiline
I don't think this should be used in production code, but I really like using it for test code.