add WrapperTest

- start with nothing case
add failing test for wrap("word word", 4)
make it pass for wrap("word word", 4)

- with little golf game
- 최소한의 타이핑으로 성공하도록 한다.
add failing test for wrap("a dog", 5)
make it work for wrap("a dog", 5)
add failing test for wrap("a dog with a bone", 6)
add failing test for wrap(null, 1)
make it pass for wrap(null, 1)
add  test for wrap("", 1)
add failing test for wrap("x", 1)
make it pass for wrap("x", 1)
refactoring

- assertThat(wrap(null, 1), is("")); 구조가 반복(3번)된다.
- null -> s, 1 -> width, "" -> expected로 extract variable
- assertWraps(s, width, expected)로 extract method한다.
- 동일한 구조를 다른 2 라인도 extract method가 적용되도록 한다.
- 그리고 s, width, expected를 inline한다.
- assertWraps 메소드를 should_wrap 테스트 메소드 위로 이동시킨다.
add failing test for  assertWraps("xx", 1, "x\nx");

- first, simplest condition that can break를 테스트 케이스로 추가한다.
make it pass for  assertWraps("xx", 1, "x\nx");
add failing test for multiple lines("xxx", 1)
make it pass for multiple lines("xxx", 1)

- do little golf game
add failing test for space(assertWraps("x x", 1, "x\nx"))
make it pass for space(assertWraps("x x", 1, "x\nx"))

- golf game. trim()만 추가
add failing test for assertWraps("x xx", 3, "x\nxx");

- width가 공백 뒤에 오는 단어의 일부를 포함하는 경우
make it pass for assertWraps("x xx", 3, "x\nxx");