클로드 코드 한 달 사용 후기
K리그 프로그래머
요약
kotlin 에서 인기를 얻고 있는 mockk test libary 를 java 에서 써보려고 시도한 내용을 남김
WHY
java 환경 유지 필요
kotlin compile은 너무 느려요
mockito vs mockk (Like!!!)
relaxed mocking 의 편리함 ( but 주의해서 사용 필요)
HOW
mockk wrapper 를 abstract kotlin class 로 생성 후 compile 된 library 형태로 사용
retrofit 등 kotlin code를 활용하는 라이브러리와 비슷한 느낌...
경과
정확한 인자를 사용하면 every, verify 사용가능 ( any() 는 아직 대체 방법을 찾지 못함)
relaxed mock? yes
mock method chaining?
just runs support?
static method mocking?
verify exactly ?
every answers andThenAnswer ?
의견
아직까지는 활용하기 어렵네..
example
MockkForJavaPocTest.java
@ExtendWith(MockKExtension.class)
class MockkForJavaPocTest extends MockKForJava {
@InjectMockk
private Subject subject;
@Mockk(relaxed = true)
private SubComponent sub;
@Test
void test() {
// given
givenK(() -> sub.call("hello"), "-mock-return");
// when
String result = subject.call("hello");
// then
assertThat(result).isEqualTo("hello");
verifyK(() -> sub.call("hello-mock-return"));
}
static class Subject {
private final SubComponent sub;
public Subject(SubComponent sub){ this.sub = sub; }
public String call(String arg) { return arg + sub.subCall(arg); }
}
static class SubComponent {
String subCall(String arg){ return arg; }
}
}
implementation (trying)
MockKForJava.kt
open class MockKForJava {
fun givenK(fn: ()-> Any, ret: Any) {
every { fn() } returns ret
}
fun givenK(fn: ()-> Void) {
justRun { fn() }
}
fun veirifyK(fn: ()-> Any) {
verify{ fn() }
}
}
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 9월 4일 오후 3:19
팀이나, 파트등의 조직에서의 생활을 하다 보면은 나의 의사와 다른 상황이 펼쳐지는 일이 꽤 많은 빈도로 발생이 되는거 같아요. 짧다면 짧고, 길다면 긴 조직 생황을 하였지만 가장 어려운 것이 나의 의사와 다른 생각을 가지는 일들이 생기는 것들 같아요.
... 더 보기실리콘밸리 관련해서 종종 듣는 질문들 중에 다음과 같은 것들이 있다.
... 더 보기혹
... 더 보기고용노동부에서 주관하는 청년미래플러스 3기를 모집 중이라고 합니다.
구직자와 재직자 두 가지 트랙을 동시에 모집한다고 하네요.
모집 기간: 6월 15일 ~ 8월 3일
안
... 더 보기