클래스명 오른쪽 클릭후 화면과같이 누르면 테스트코드가 생성된다.
test/~/domain/RestaurantTests.java
package kr.co.fastcampus.eatgo.domain;
import org.junit.Test;
import static org.hamcrest.core.Is.is; // assertThat()에서 is 사용시 이것사용
import static org.junit.Assert.*;
public class RestaurantTests {
@Test // 테스트코드 작성시 사용하는 어노테이션
public void creation(){ // Restaurant 객체 생성 테스트
Restaurant restaurant = new Restaurant(); // Restaurant 객체 생성
assertThat(restaurant.getName(), is("Bob zip"));
// assertThat은 어떤것은 어떤것이어야된다는 가정문이다.
// is()를 사용하면 왼쪽의 restaurant.getName() 값이 is("Bob zip")와 같아야 한다는 것이다.
}
}
main/~/domain/Restaurant.java
package kr.co.fastcampus.eatgo.domain;
public class Restaurant {
public String getName() {
return "Bob zip";
}
}
이렇게 하면 테스트가 통과 된다.
하지만 이렇게 Restaurant 클래스의 return값이 항상 return "Bob zip"; 이 되게 고정시킬수만은 없는 노릇이다.
그러므로 객체를 생성시 이름을 넣어줄수 있도록 Restaurant클래스를 생성자를 넣는 코드로 수정한다.
test/~/domain/RestaurantTests.java
package kr.co.fastcampus.eatgo.domain;
import org.junit.Test;
import static org.hamcrest.core.Is.is; // assertThat()에서 is 사용시 이것사용
import static org.junit.Assert.*;
public class RestaurantTests {
@Test // 테스트코드 작성시 사용하는 어노테이션
public void creation(){ // Restaurant 객체 생성 테스트
Restaurant restaurant = new Restaurant("Bob zip"); // Restaurant 생성자 이용해 객체 생성
assertThat(restaurant.getName(), is("Bob zip"));
// assertThat은 어떤것은 어떤것이어야된다는 가정문이다.
// is()를 사용하면 왼쪽의 restaurant.getName() 값이 is("Bob zip")와 같아야 한다는 것이다.
}
}
main/~/domain/Restaurant.java
package kr.co.fastcampus.eatgo.domain;
public class Restaurant {
private final String name;
public Restaurant(String name) { // 생성자
this.name = name;
}
public String getName() {
return name;
}
}
생성자를 이용한 캡슐화방식으로 getName()메서드로 생성자에서 생성한 리턴값을 불러낼수 있다.
이번에는 이름과 주소를 가진 객체를 생성하고 간단한 정보를 확인하는 테스트를 해보겠다.
test/~/domain/RestaurantTests.java
package kr.co.fastcampus.eatgo.domain;
import org.junit.Test;
import static org.hamcrest.core.Is.is; // assertThat()에서 is 사용시 이것사용
import static org.junit.Assert.*;
public class RestaurantTests {
@Test // 테스트코드 작성시 사용하는 어노테이션
public void creation(){ // Restaurant 객체 생성 테스트
Restaurant restaurant = new Restaurant("Bob zip", "Seoul"); // Restaurant 객체 생성
assertThat(restaurant.getName(), is("Bob zip")); //이름 확인
assertThat(restaurant.getAddress(), is("Seoul")); //주소 확인
// assertThat은 어떤것은 어떤것이어야된다는 가정문이다.
// is()를 사용하면 왼쪽의 restaurant.getName() 값이 is("Bob zip")와 같아야 한다는 것이다.
}
public void information(){ // Restaurant 정보 테스트
Restaurant restaurant = new Restaurant("Bob zip", "Seoul"); // 이름과 주소를 생성자에 넣어 객체생성
assertThat(restaurant.getInformaion(), is("Bob zip in Seoul")); //정보 확인
}
}
main/~/domain/Restaurant.java
package kr.co.fastcampus.eatgo.domain;
public class Restaurant {
private final String name;
private final String address;
public Restaurant(String name, String address) {
this.name = name;
this.address = address;
}
public String getName() { // 생성된 객체의 이름 반환
return name;
}
public String getAddress() { // 생성된 객체의 주소 반환
return address;
}
public String getInformaion() { // 생성된 객체의 정보 반환
return name + " in " + address;
}
}