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.