Wie zu injizieren parameter in Konstruktor der TestNG-Klasse?

Implementierte ich ein programm mit dem Strategie-Muster. Also ich habe ein interface welches verwendet wird, an einigen stellen und die konkrete Implementierung ersetzt werden kann.

Will ich jetzt testen Sie dieses programm. Ich würde gerne tun es in einer ähnlichen Art und Weise. Schreiben Sie eine Teste mal, welche tests gegen das interface. Die konkreten interface-Implementierung sollte injiziert werden, am Anfang der Prüfung, so dass ich kann einfach ausgewechselt werden.

Meine Testklasse sieht ähnlich aus wie diese:

public class MyTestClass {

    private StrategeyInterface strategy;

    public MyTestClass(StrategeyInterface strategy) {
        this.strategy = strategy;
    }
    ....test methods using the strategy.
}

Den parametrisierten contructor muss verwendet werden, um zu injizieren die konkrete Umsetzung der Strategie an thr-Anfang og des tests.

Nun habe ich nicht bekommen TestNG ausführen, und injizieren die konkrete Umsetzung Instanz. Ich habe versucht, mehrere Möglichkeiten, mit Vererbung @DataProvider, @Factory und die entsprechenden Methoden, aber ohne Glück.

Hier ist, was die testNG-report sagt:

Can't invoke public void MyClass.myTestMethod(): either make it static or add a no-args constructor to your class

Ich den maven-surefire-plugin, um die tests auszuführen. Hier ist der entsprechende Teil des 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>

Wie kann ich schreiben und ausführen der tests, mit dem Einspritzen einer konkreten Umsetzung in der test-Klasse?

Vielen Dank im Voraus.

P. S. könnte ich liefern, mehr code habe ich das versucht. Ich habe nicht post es hier, noch, denn ich habe versucht so viele Varianten, so dass ich bin irgendwie verwirrt jetzt und alle von Ihnen scheitern.

InformationsquelleAutor anonymous | 2011-08-01
Schreibe einen Kommentar