setUp()과 setUpBeforeClass()의 차이점
사용한 에서는 JUnit의 두 유사한.setUp()
★★★★★★★★★★★★★★★★★」setUpBeforeClass()
법법법 차이 ?이? ????또, 다른 점은 무엇입니까?tearDown()
★★★★★★★★★★★★★★★★★」tearDownAfterClass()
시그니처는 다음과 같습니다.
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@BeforeClass
★★★★★★★★★★★★★★★★★」@AfterClass
주석이 달린 메서드는 테스트 실행 중 정확히 한 번 실행됩니다. 테스트 시작과 종료는 다른 작업이 수행되기 전에 수행됩니다. 이 .static
.
@Before
★★★★★★★★★★★★★★★★★」@After
메서드는 모든 테스트 케이스 전과 후에 실행되므로 테스트 실행 중에 여러 번 실행될 수 있습니다.
예를 들어 클래스 내에서 3개의 테스트가 있다고 가정하면 메서드 호출의 순서는 다음과 같습니다.
setUpBeforeClass()
(Test class first instance constructed and the following methods called on it)
setUp()
test1()
tearDown()
(Test class second instance constructed and the following methods called on it)
setUp()
test2()
tearDown()
(Test class third instance constructed and the following methods called on it)
setUp()
test3()
tearDown()
tearDownAfterClass()
"BeforeClass"는 테스트 케이스의 정적 이니셜라이저로 간주합니다. 정적 데이터를 초기화하기 위해 사용합니다. 테스트 케이스 전체에서 변경되지 않는 것입니다.스레드 세이프가 아닌 스태틱리소스에 주의할 필요가 있습니다.
마지막으로 "AfterClass" 주석 첨부 방법을 사용하여 "BeforeClass" 주석 첨부 방식으로 수행한 모든 설정을 정리합니다(자체 파괴가 충분하지 않은 경우).
"Before"와 "After"는 유닛 테스트 고유의 초기화를 나타냅니다.일반적으로 이러한 방법을 사용하여 종속성의 mock을 초기화/재초기화합니다.이 초기화는 유닛테스트에 고유한 것이 아니라 모든 유닛테스트에 공통적으로 적용됩니다.
setUpBeforeClass는 생성자 직후 메서드 실행 전에 실행됩니다(한 번만 실행).
각 메서드가 실행되기 전에 셋업이 실행됩니다.
각 메서드를 실행한 후에 티어다운이 실행됩니다.
TearDownAfterClass는 다른 모든 메서드 실행 후에 실행됩니다.(디컨스트럭터 1회만 실행)
Javadoc에서:
데이터베이스 로그인 등 계산 비용이 많이 드는 설정을 공유해야 하는 여러 테스트가 있을 수 있습니다.이로 인해 테스트의 독립성이 저하될 수 있지만 경우에 따라서는 최적화가 필요할 수 있습니다.의 주석 달기
public static void
(''를 사용)@BeforeClass
는 클래스 내의 테스트 메서드 중 하나에 앞서 한 번 실행됩니다.@BeforeClass
슈퍼클래스의 메서드는 현재 클래스보다 먼저 실행됩니다.
언급URL : https://stackoverflow.com/questions/3413092/difference-between-setup-and-setupbeforeclass
'programing' 카테고리의 다른 글
Vue.js 라우터가 RouteUpdate 전에 호출하지 않음(typescript) (0) | 2022.07.10 |
---|---|
렌더링하기 전에 데이터를 기다리는 Vue JS (0) | 2022.07.10 |
오류:java: 비활성 소스 릴리스: Intellij의 8.그것은 무엇을 뜻하나요? (0) | 2022.07.10 |
readelf와 같은 툴을 Mac OS X용으로 제공합니까? (0) | 2022.07.10 |
Java 메서드에서 2개의 값을 반환하려면 어떻게 해야 합니까? (0) | 2022.07.10 |