Этот коммит содержится в:
gedi 2015-06-17 18:18:28 +03:00
родитель 743083181e
коммит 3c405af6b2
2 изменённых файлов: 25 добавлений и 6 удалений

Просмотреть файл

@ -8,10 +8,6 @@ Feature: suite hooks
And a feature path "features/load_features.feature:6"
And I parse features
Scenario: hi there
Scenario: triggers before scenario hook
When I run features
Then I should have a scenario "" recorded in the hook
Scenario: and there
When I run features
Then I should have a scenario "" recorded in the hook
Then I should have a scenario "load features within path" recorded in the hook

Просмотреть файл

@ -46,6 +46,13 @@ func (s *suiteFeature) numParsed(args ...*Arg) (err error) {
return
}
func (s *suiteFeature) iRunFeatures(args ...*Arg) error {
for _, f := range s.features {
s.runFeature(f)
}
return nil
}
func (s *suiteFeature) numScenariosRegistered(args ...*Arg) (err error) {
var num int
for _, ft := range s.features {
@ -57,6 +64,16 @@ func (s *suiteFeature) numScenariosRegistered(args ...*Arg) (err error) {
return
}
func (s *suiteFeature) iShouldHaveScenarioRecordedInHook(args ...*Arg) (err error) {
if s.befScenarioHook == nil {
return fmt.Errorf("there was no scenario executed in before hook")
}
if s.befScenarioHook.Title != args[0].String() {
err = fmt.Errorf(`expected "%s" scenario to be run in hook, but got "%s"`, args[0].String(), s.befScenarioHook.Title)
}
return
}
func SuiteContext(g Suite) {
s := &suiteFeature{
suite: suite{},
@ -79,4 +96,10 @@ func SuiteContext(g Suite) {
g.Step(
regexp.MustCompile(`^I have a before scenario hook$`),
StepHandlerFunc(s.iHaveBeforeScenarioHook))
g.Step(
regexp.MustCompile(`^I run features$`),
StepHandlerFunc(s.iRunFeatures))
g.Step(
regexp.MustCompile(`^I should have a scenario "([^"]*)" recorded in the hook$`),
StepHandlerFunc(s.iShouldHaveScenarioRecordedInHook))
}