JUnit5를 이용한 단위 테스트 코드를 작성하던 중,
assertj에 대해 import가 아닌 import static으로 패키지를 받아서 이용한다는 사실을 알게 되었다.
여태껏 import만 사용해봤기 때문에 무슨 차이가 있는지 몰랐는데, 어떤 차이가 있길래 import static으로 사용이 되는 것일까?
결론부터 말하자면, static import는 메소드나 변수를 패키지, 클래스 명을 기입할 필요 없이 접근 가능하다.
따라서 코드가 훨씬 간결해보이고, 사용하기 편하다는 장점이 있다.
import static java.lang.Math.*;
public class Main {
public class StaticImportCase {
public static void main(String[] args) {
double rand1 = Math.random();
double rand2 = random();
}
}
}
static import를 사용함으로써 random()으로만 적어도 사용이 가능하다.import org.junit.jupiter.api.*;
import static org.assertj.core.api.Assertions.*;
class TempTest {
static Calculator c;
@BeforeEach
void setUp() {
c = new Calculator();
}
@AfterEach
void nonStaticMethod() {
Assertions.assertThat(c.add(2,3)).isEqualTo(3);
}
@Test
void staticMethod() {
assertThat(c.add(2,3)).isEqualTo(3);
}
}