Open lepffm opened 3 weeks ago
kotlin 에서 인기를 얻고 있는 mockk test libary 를 java 에서 써보려고 시도한 내용.
@ExtendWith(MockKExtension.class) class MockkForJavaPocTest extends MockKForJava { @InjectMockk private Subject subject; @Mockk(relaxed = true) private SubComponent sub; @Test void test() { givenK(() -> sub.call("test"), "mock-return"); String result = subject.call("hello"); assertThat(result).isEqualTo(""); verifyK(() -> sub.call("test")); } static class Subject { private 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; } } }
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() } } }
요약
kotlin 에서 인기를 얻고 있는 mockk test libary 를 java 에서 써보려고 시도한 내용.
WHY
HOW
경과
example
implementation