public void ShouldGenerateTestsCodeThatWouldDescribeEachScenarioStructureInTest() { // mock var rootNs = "qualquer.coisa"; var feature = new Feature() { Name = "Cliente, Exclusão" }; var scenarios = new[] { new Scenario() { Name = "Deve falhar quando cliente está vinculado à [1] produtos.", Scope = ScenarioScope.BottomUp, Statements = { Given = "Dada a tablatura 'INVÁLIDA'", When = "Quando eu realizo a transcrição", Then = "Então eu devo receber uma exceção 'InvalidGuitarTabException'" } } }; // prepare var builder = new CSharpFeatureTestsBuilder(); builder.Feature = feature; builder.Scenarios = scenarios; builder.RootNamespace = rootNs; // do var code = builder.ToCode(); Console.Write(code); // check var hasTextBody = this.HasMethodCallsForGivenWhenThen(code); Assert.IsTrue(hasTextBody); }
public void ShouldGenerateCodeThatWillDefineAParticularScope() { // mock var scope = ScenarioScope.BottomUp; var rootNs = "qualquer.coisa"; var feature = new Feature() { Name = "Cliente, Exclusão" }; var scenarios = new[] { new Scenario() { Scope = scope, Name = "Deve falhar quando cliente está vinculado à [1] produtos." } }; // prepare var builder = new CSharpFeatureTestsBuilder(); builder.RootNamespace = rootNs; builder.Feature = feature; builder.Scenarios = scenarios; // do var code = builder.ToCode(); Console.Write(code); // check var hasScopeTrait = this.HasScopeTrait(code, scope); Assert.IsTrue(hasScopeTrait); }
private TestsBuilder MakeTestsBuilder(Feature feature) { var builder = new CSharpFeatureTestsBuilder(); builder.RootNamespace = this.RootNamespace; builder.Feature = feature; builder.FeaturePath = feature.File; builder.Scenarios = feature.Scenarios; return builder; }
public void ShouldGenerateTestsCodeThatWouldRunTestsForEachScenario() { // mock var rootNs = "qualquer.coisa"; var feature = new Feature() { Name = "Cliente, Exclusão" }; var scenarios = new[] { new Scenario() { Name = "Deve falhar quando cliente está vinculado à [1] produtos." }, new Scenario() { Name = "Deve falhar quando cliente está vinculado à [99] produtos." }, }; // prepare var builder = new CSharpFeatureTestsBuilder(); builder.Feature = feature; builder.Scenarios = scenarios; builder.RootNamespace = rootNs; // do var code = builder.ToCode(); Console.Write(code); // check var hasAllTests = this.HasATestForEachScenario(code, feature, scenarios); Assert.IsTrue(hasAllTests); }
public void ShouldGenerateTheScopeTraitWhenProvided() { // mock var rootNamespace = "empresa.grupo.modulo"; var feature = new Feature() { Name = "Cliente, Exclusão" }; var scenarios = new Scenario[0]; // prepare var builder = new CSharpFeatureTestsBuilder(); builder.RootNamespace = rootNamespace; builder.Feature = feature; builder.Scenarios = scenarios; // do var code = builder.ToCode(); Console.Write(code); // check var hasNamespace = this.HasNamespace(code, rootNamespace); Assert.IsTrue(hasNamespace); }