예제 #1
0
        public ParsedSpec Parse(string specText)
        {
            var parsedSpec = new ParsedSpec();
            foreach (var line in specText.SplitIntoLines())
            {
                if (string.IsNullOrEmpty(line.Trim()))
                    continue;

                if (IsScenarioLine(line))
                {
                    if (_inScenario)
                        parsedSpec.AddScenario(_currentScenario);

                    _currentScenario = new Scenario();

                    var match = Regex.Match(line.Trim(), "^Scenario:(.*)$");
                    _currentScenario.Name = StringifyMethodName(match.Groups[1].Value.Trim());
                    _inScenario = true;
                }
                else
                {
                    var method = StringifyMethodName(line.Trim());
                    method = ReplaceWithPhraseStarter(method);
                    _currentScenario.CalledMethods.Add(method);
                    parsedSpec.AddHelperMethod(method);
                }
            }

            if (!string.IsNullOrEmpty(_currentScenario.Name))
                parsedSpec.AddScenario(_currentScenario);

            return parsedSpec;
        }
예제 #2
0
 public void AddScenario(Scenario scenario)
 {
     _scenarios.Add(scenario);
 }