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);
}
}