Ist es möglich, dass eine Unterkontextklasse einen anderen Unterkontext erweitert und Funktionen außer Kraft setzt?Ist es möglich, Schrittdefinitionen in einem Behat-Kontext zu überschreiben?
Derzeit Ich habe
class TestContext extends BehatContext {
/**
* @Given /^a testScenarioExists$/
*/
public function aTestscenarioexists() {
echo "I am a generic test scenario\n";
}
}
und
class SpecialTestContext extends TestContext {
/**
* @Given /^a testScenarioExists$/
*/
public function aTestscenarioexists() {
echo "I am a special test scenario\n";
}
}
Im Feature Kontext ich es sagen uns die SpecialTestContext
als Subkontext.
Wenn ich laufe der Test Behat klagt mit
[Behat \ Behat \ Exception \ RedundantException]
Step "/^a testScenarioExists $ /" ist bereits definiert in SpecialTestContext :: aTestscenarioexists()
Kann mir bitte jemand in die richtige Richtung zeigen?
Um einige weitere Informationen zu geben, warum ich versuche, dies zu erreichen, was ich versuche, die Fähigkeit zu erreichen, ist Szenarien mit unterschiedlichen Umgebungen zu laufen, und haben die Umgebung, in der gherkin-Datei angegeben, zum Beispiel:
Scenario: Test with generic environment
Given I am in the environment "generic"
And a test scenario exists
Scenario: Test with specialised environment
Given I am in the environment "specialised"
And a test scenario exists
Ich kann dann Code in FeatureContext
hinzufügen, um den richtigen Sub-Kontext zu laden.
Aktualisiere nur die oben angegebenen Links. * http://docs.behat.org/en/latest/user_guide/context/definitions.html#redundant-step-definitions * http://docs.behat.org/en/latest/user_guide/context. html # contexts-lifetime – aczietlow