사이드 이펙트
를 최대한 줄일 수 있는 예방책모듈화
를 고민하게 되는 등의 부수적인 이점public class Calculator {
}
public class CalculatorTest {
Calculaotr calc = new Calculator();
}
public class Calculator {
}
public class CalculatorTest {
Calculaotr calc = new Calculator();
@Test
void plus() {
int a = 10;
int b = 20;
int result = calc.plus(a, b);
}
}
현재 Calculator 클래스에는 plus라는 메서드가 존재하지 않기 때문에 실패하게 된다
public class Calculator {
public int plus(int a, int b) {
return 0; // 리턴값은 상관없이 컴파일만 되는 것을 목표로
};
}
public class CalculatorTest {
Calculaotr calc = new Calculator();
@Test
void plus() {
int a = 10;
int b = 20;
int result = calc.plus(a, b);
}
}
public class Calculator {
public int plus(int a, int b) {
return 0; // 리턴값은 상관없이 컴파일만 되는 것을 목표로
};
}
public class CalculatorTest {
Calculaotr calc = new Calculator();
@Test
void plus() {
int a = 10;
int b = 20;
int result = calc.plus(a, b);
assertEquals(result, a + b);
}
}
public class Calculator {
public int plus(int a, int b) {
return a + b;
};
}
public class CalculatorTest {
Calculaotr calc = new Calculator();
@Test
void plus() {
int a = 10;
int b = 20;
int result = calc.plus(a, b);
assertEquals(result, a + b);
}
}
BDDMockito
를 사용하는데 Mockito 라이브러리 내에 존재하는 BDDMockito 클래스를 말 하며 BDD 지향적인 개발을 mockito 에서 api 형태로 제공한다.순수 Mockito
에서 BDD의 Given / When / Then 을 위해서 when(obj) 메서드와 thenReturn() 이용하고 verity() 구문을 이용해 검증한다.
하지만 가독성이 떨어지고 이해가 어렵다는 이유로 BDDMockito
가 등장한다. 기능은 같지만 이름만 다른 클래스라고 생각해도 될 것 같다.
any()
eq()
출처 및 참고
https://wonit.tistory.com/493
Mockito와 BDDMockito는 뭐가 다를까?