2017-10-23 4 views
1

Ich möchte diese Unit-Test in BDD konvertieren storyQ mit Arbeits Unit-TestStoryQ Wenn() Aufruf Aufgabe C#

 [Test] 
     public async void CreateNewProjectAndDatabase() 
     { 
      StartParametersAndAteEngineDlls(); 
      await TheNewDatabaseAndProjectIsCreated(); 
      TheDataBaseViewModelIsCreated(); 
      TheMainViewModelIsCreated(); 
     } 




private async Task TheNewDatabaseAndProjectIsCreated() 
{ 
.... 
} 

zu BDD umgewandelt

[Test] 
    public async Task CreateNewProjectAndDatabase() 
    { 
     _story.WithScenario("Create a new bla bla") 
      .Given(StartParametersAndAteEngineDlls) 
      .When(async()=> await TheNewDatabaseAndProjectIsCreated()) 
      .Then(TheDataBaseViewModelIsCreated) 
      .And(TheMainViewModelIsCreated) 
      .Execute(); 
    } 

der Code Code jedoch kompiliert I get a ArgumentException Wenn Sie 2 Unterstriche in Ihrem Methodennamen verwenden, stellen Sie sicher, dass es 2 Argumente gibt (gefunden 0)

Antwort

1

Ich weiß, dass ich ein bisschen spät bin. Ich hatte das gleiche Problem, das ich behoben habe, indem ich die Methode When geändert habe. Anstatt zu warten und eine Aufgabe zu haben, habe ich die oldSchool-Funktion "Wait" in der When-Methode verwendet. Auf diese Weise können wir eine private Void-Funktion haben, die StoryQ versteht.

So etwas wie das.

private void MyWhenMethod() 
{ 
    _sut.AsyncMethodRun().Wait() 
}