나는 전략 패턴으로 programm를 구현했다. 그래서 나는 어떤 곳에서 사용되는 인터페이스를 가지고 있으며 구체적인 구현은 대체 될 수있다.TestNG 클래스의 생성자에 매개 변수를 삽입하는 방법은 무엇입니까?
이제이 프로그램을 테스트하고 싶습니다. 나는 비슷한 방식으로 그것을하고 싶다. 인터페이스에 대해 테스트하는 테스트를 한 번 작성하십시오. 테스트를 시작할 때 콘크리트 인터페이스 구현을 주입해야하므로 쉽게 대체 할 수 있습니다.
내 TestClass에이 사람과 유사합니다
public class MyTestClass {
private StrategeyInterface strategy;
public MyTestClass(StrategeyInterface strategy) {
this.strategy = strategy;
}
....test methods using the strategy.
}
테스트 OG의 시작 THR의 구체적인 전략 구현을 주사로 사용되는 매개 변수화 된 생성자를해야합니다.
이제 TestNG를 실행하고 구체적인 구현 인스턴스를 주입하지 않았습니다. 나는 여러 가지 방법으로 상속, @DataProvider
, @Factory
및 해당 방법을 시도했지만 행운을하지 않습니다.
Can't invoke public void MyClass.myTestMethod(): either make it static or add a no-args constructor to your class
내가 테스트를 실행하기 위해 받는다는 확실한 플러그인을 사용 : 여기
는 TestNG의 보고서는 말씀입니다. 여기에 pom.xml 파일의 관련 부분은 다음과 같습니다
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
는 어떻게 작성하고 테스트 클래스에 구체적인 구현을 주입하여, 테스트를 실행합니까?
미리 감사드립니다.
P. 나는 더 많은 코드를 제공 할 수 있었다. 나는 많은 변종을 시도했기 때문에 나는 여기에 게시하지 않았다. 그래서 나는 지금 혼란 스러우며 모든 것이 실패한다.