테스트 클래스가 특정 인터페이스를 포함하도록 강제 적용 할 수 있습니까?전체 인터페이스에 대해 jUnit 테스트 적용
오버로드 된 테스트 메서드를 작성하는 규칙이 있으므로 이름이 일관됩니다 (현재 기술은 methodName + parameter1Type + parameter2Type + ...와 비슷합니다)?
첫 번째 작업을 수행하는 좋은 방법이 있다면 두 번째 질문이 다루어 지거나 피할 수 있기를 바랍니다.
문제점이 몇 가지 인터페이스를 구현하는 클래스가 있습니다. 스프링 주입 서비스 클래스를 테스트하기 때문에 모든 것이 적어도 하나의 인터페이스를가집니다.
public interface MyInterface{
int doFoo(int input);
int doBar(int input);
}
이 MyInterfaceImpl 말할 수 있습니다,이 인터페이스를 구현합니다
은 어쨌든 내가 구현하는 클래스를 말한다. 지금 위의 크기의 측면에서 나쁜에없는
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class MyInterfaceImplTest{
private MyInterface = new MyInterfaceImpl(); //could inject it...
@Test
public void doFooTest(){
//content of test not relevant
}
@Test
public void doBarTest(){
//content of test not relevant
}
}
하지만 내가 더 큰 클래스의 모든 테스트를 적용했는지 알고 어렵다 :
지금 내 테스트 클래스는 같을 것 나는 하나를 놓칠 수 있었다. 또한 오버로드 된 메서드에 대한 메서드 이름을 만들 수 있습니다. 클래스에 기능을 추가 할 수도 있고 놓칠 수도 있습니다. 내가 TDD를하고 있다면 이것은 거의 불가능할 것이지만 나는 여전히 확신하고 싶다. 내가 쓰고 싶은 유혹은 ...
그리고 나서 각 방법 앞에 @Test를 붙이고 싶습니다. 물론 이것은 테스트에 값을 넣어야하기 때문에 작동하지 않습니다.하지만 을 구현하면을 구현하면 IDE가 메서드를 추가하고 전체 인터페이스가 구현되도록합니다. 분명히 나는 테스트에서 인터페이스를 실제로 구현하려고하지 않는다는 것을 알고 있지만, 이렇게 할 수 있다면 개발 속도를 높일 수 있다고 생각한다.
그것은 더 나가의 JUnit의 범위에 포함되지 그래서 내가 무엇을 찾고, 생각하고 있었는데 그 이후입니까? – Quaternion