package org.zerock.sample;

import static org.junit.Assert.assertNotNull;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import lombok.Setter;
import lombok.extern.log4j.Log4j;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class SampleTests {
	
	@Setter(onMethod_=@Autowired)
	private Restaurant restaurant;
	
	@Test
	public void testExist() {
		assertNotNull(restaurant);
		
		log.info(restaurant);
		log.info("----------------------");
		log.info(restaurant.getChef());
	}
}

 

@Runwith

- 테스트 코드는 우선 현재 테스트 코드가 스프링을 실행하는 역할을 할 것이다 라는 것을 나타냅니다

 

@ContextConfiguration

- 해당 어노테이션은 지정된 클래스나 문자열을 이용해서 필요한 객체들을 스프링 내에 객체로 등록합니다. (빈 등록)

- 이클립스에서 자동으로 생성된 root-context.xml의 경로를 지정할 수 있습니다.

 

@Log4j

- Lombok을 이용해 로그를 기록하는 logger를 변수로 생성합니다.

- 별도의 객체 생성 없이 사용가능 합니다.

 

@Autowired

- 해당 인스턴스 변수가 스프링으로부터 자동으로 주입해 달라는 표시입니다.

- 스프링은 정상적으로 주입이 가능하다면 obj 변수에 Restaurant 타입의 객체를 주입하게 됩니다.

 

@Test

- JUnit에서 테스트 대상을 표시하는 어노테이션입니다.

- 해당 메서드를 선택하고 JUnit Test 기능을 실행합니다.

 

assertNotNull()

- 해당 코드에서 restaurant 변수가 null이 아니어야만 테스트가 성공한다는 것을 의미합니다

+ Recent posts