Ejemplo n.º 1
0
        public void NUnit3TestGeneratorProvider_FeatureDescriptionShouldSetCorrectly()
        {
            // ARRANGE
            const string sampleFeatureFile = @"
            Feature: Sample feature file
            FeatureDescription

            Scenario: Simple scenario
                Given there is something
                When I do something
                Then something should happen";

            var document = ParseDocumentFromString(sampleFeatureFile);
            var sampleTestGeneratorProvider = new NUnit3TestGeneratorProvider(new CodeDomHelper(CodeDomProviderLanguage.CSharp));
            var converter = sampleTestGeneratorProvider.CreateUnitTestConverter();

            // ACT
            var code = converter.GenerateUnitTestFixture(document, "TestClassName", "Target.Namespace");

            var testClass = code.Class();

            // ASSERT
            testClass.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3DescriptionAttribute && a.ArgumentValues().Any(v => v.ToString().Trim() == "FeatureDescription"));

            var fixtureAttribute = testClass.CustomAttributes().OfType <CodeAttributeDeclaration>().FirstOrDefault(a => a.Name == NUnit3TestFixtureAttribute);

            fixtureAttribute.Arguments.OfType <CodeAttributeArgument>().Should().ContainSingle(a => a.Name == "TestName");
            var testNameArgument = fixtureAttribute.Arguments.OfType <CodeAttributeArgument>().FirstOrDefault(a => a.Name == "TestName");

            var testNameArgumentValueExpression = testNameArgument.Value as CodePrimitiveExpression;

            testNameArgumentValueExpression.Should().NotBeNull();
            testNameArgumentValueExpression.Value.Should().Be("Sample feature file");
        }
Ejemplo n.º 2
0
        public void NUnit3TestGeneratorProvider_ScenarioOutlineDescriptionShouldSetCorrectly()
        {
            // ARRANGE
            const string sampleFeatureFile = @"
              Feature: Sample feature file
              
              Scenario: Simple scenario
                  Given there is something
                  When I do something
                  Then something should happen
              
              @mytag
              Scenario Outline: Simple Scenario Outline
              ScenarioOutlineDescription
                  Given there is something
                      """"""
                        long string
                      """"""
                  When I do <what>
                      | foo | bar |
                      | 1   | 2   |
                  Then something should happen
              Examples:
                  | what           |
                  | something      |
                  | something else |
";

            var document = ParseDocumentFromString(sampleFeatureFile);
            var sampleTestGeneratorProvider = new NUnit3TestGeneratorProvider(new CodeDomHelper(CodeDomProviderLanguage.CSharp));
            var converter = sampleTestGeneratorProvider.CreateUnitTestConverter();

            // ACT
            var code = converter.GenerateUnitTestFixture(document, "TestClassName", "Target.Namespace");

            var testMethod = code.Class().Members().Single(m => m.Name == "SimpleScenarioOutline");

            testMethod.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3DescriptionAttribute && a.ArgumentValues().Any(v => v.ToString().Trim() == "ScenarioOutlineDescription"));

            var caseAttributes = testMethod.CustomAttributes().OfType <CodeAttributeDeclaration>().Where(a => a.Name == NUnit3TestCaseAttributeName).ToList();

            var testCase1NameArgument = caseAttributes[0].Arguments.OfType <CodeAttributeArgument>().FirstOrDefault(a => a.Name == "TestName");
            var testCase1NameArgumentValueExpression = testCase1NameArgument.Value as CodePrimitiveExpression;

            testCase1NameArgumentValueExpression.Should().NotBeNull();
            testCase1NameArgumentValueExpression.Value.Should().Be("Simple Scenario Outline(something)");

            var testCase2NameArgument = caseAttributes[1].Arguments.OfType <CodeAttributeArgument>().FirstOrDefault(a => a.Name == "TestName");
            var testCase2NameArgumentValueExpression = testCase2NameArgument.Value as CodePrimitiveExpression;

            testCase2NameArgumentValueExpression.Should().NotBeNull();
            testCase2NameArgumentValueExpression.Value.Should().Be("Simple Scenario Outline(something else)");
        }
Ejemplo n.º 3
0
        public void NUnit3TestGeneratorProvider_ExampleSetIdentifiers_ShouldSetDescriptionCorrectly()
        {
            // ARRANGE
            const string sampleFeatureFileWithMultipleExampleSets = @"
              Feature: Sample feature file
              
              Scenario: Simple scenario
                  Given there is something
                  When I do something
                  Then something should happen
              
              @mytag
              Scenario Outline: Simple Scenario Outline
                  Given there is something
                      """"""
                        long string
                      """"""
                  When I do <what>
                      | foo | bar |
                      | 1   | 2   |
                  Then something should happen
              Examples:
                  | what           |
                  | something      |
                  | something else |
              Examples:
                  | what           |
                  | another        |
                  | and another    |
";

            var document = ParseDocumentFromString(sampleFeatureFileWithMultipleExampleSets);
            var sampleTestGeneratorProvider = new NUnit3TestGeneratorProvider(new CodeDomHelper(CodeDomProviderLanguage.CSharp));
            var converter = sampleTestGeneratorProvider.CreateUnitTestConverter();

            // ACT
            var code = converter.GenerateUnitTestFixture(document, "TestClassName", "Target.Namespace");

            // ASSERT
            var testMethod = code.Class().Members().Single(m => m.Name == "SimpleScenarioOutline");

            testMethod.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3TestCaseAttributeName && (string)a.ArgumentValues().First() == "something");
            testMethod.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3TestCaseAttributeName && (string)a.ArgumentValues().First() == "something else");
            testMethod.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3TestCaseAttributeName && (string)a.ArgumentValues().First() == "another");
            testMethod.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3TestCaseAttributeName && (string)a.ArgumentValues().First() == "and another");
        }
 public CustomTestGeneratorProvider(CodeDomHelper codeDomHelper)
 {
     _unitTestGeneratorProvider = new
                                  NUnit3TestGeneratorProvider(codeDomHelper);
     CodeDomHelper = codeDomHelper;
 }