Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- java
- 프로젝트 시작
- #화면캡쳐 #macOS
- 분석 작업
- docker #docker tutorial
- 토익
- #Microservice
- Microservices
- 2010
- Lambda
- 년말
- Spring Boot
- 방법론
- jv
- WebJar
- 감사
- #단축키
- #정규표현식
- #Gradle Multi project with IntelliJ
- bootstrap
- 평가인증
Archives
- Today
- Total
사랑해 마니마니
Business Logic Layer 추가하기 본문
Multiplication Service에 1)method 하나 추가하고 2)테스트 만들기
boolean checkAttempt(final MultiplicationResultAttempt resultAttempt);
TDD에서와 같이 interface 구현 함수에 대충 만들어서 test fail 만들기 이후에 다시 정련하기^^;
//MultiplicationServiceImpl.java @Override public boolean checkAttempt(MultiplicationResultAttempt resultAttempt) { return false; }
이제 기존 테스트 클래스에 새로 추가한 메소드를 테스트 해보자
@Test public void checkCorrectAttemptTest() { } @Test public void checkWrongAttemptTest() { }
하나는 성공 케이스, 또하나는 실패 케이스...
이제 세부 구현해 보자
public class MultiplicationServiceTest { private MultiplicationServiceImpl multiplicationServiceImpl; @Before public void setUp() { MockitoAnnotations.initMocks(this); multiplicationService = new MultiplicationServiceImpl(randomGeneratorService); multiplicationServiceImpl = new MultiplicationServiceImpl(randomGeneratorService); } @Test public void checkCorrectAttemptTest() { // given Multiplication multiplication = new Multiplication(50, 60); User user = new User("john_doe"); MultiplicationResultAttempt attempt = new MultiplicationResultAttempt(user, multiplication, 3000); // when boolean attemptResult = multiplicationServiceImpl.checkAttempt(attempt); // assert assertThat(attemptResult).isTrue(); } }
실행 시키면 당연히 fail: 왜냐하면 public boolean checkAttempt(MultiplicationResultAttempt resultAttempt) { return false; } 코드 때문에....
<pre class="brush: java">
@Test
public void checkWrongAttemptTest() {
// given
Multiplication multiplication = new Multiplication(50, 60);
User user = new User("john_doe");
MultiplicationResultAttempt attempt = new MultiplicationResultAttempt(user, multiplication, 3010);
// when
boolean attemptResult = multiplicationServiceImpl.checkAttempt(attempt);
// assert
assertThat(attemptResult).isFalse();
}
</pre>
이 코드는 당연히 성공 T.T --> 구현을 재대로 안했는 데도...
성공, 실패 케이스를 둘다 만들어서 테스트 안해보면..
가끔씩... 잘 못된 케이스에 대해서 Pass가 될 수 있으니 조심...!!!
TDD에서 처럼... 이제.. service impl class의 메소드를 재대라 만들어 보자.
@Override public boolean checkAttempt(MultiplicationResultAttempt resultAttempt) { //return false; return resultAttempt.getResultAttempt() == resultAttempt.getMultiplication().getFactorA() * resultAttempt.getMultiplication().getFactorB(); }
'spring boot in action' 카테고리의 다른 글
macOS IntelliJ 단축키 (0) | 2018.07.24 |
---|---|
도메인 디자인 하기 (0) | 2018.05.01 |
스프링 부트 마이크로서비스 - 도메인 (0) | 2018.04.21 |
3Tier 로 고치기 (0) | 2018.04.21 |
Microservice @spring boot (0) | 2018.04.21 |
Comments