Storyteller 4.0 adds some ability to use asynchronous methods as grammars. As asynchronous programming continues to become so much more prevalant, Storyteller will adapt and add more capabilities. For now, you have these options:
public class AsyncOperationsFixture : Fixture
{
[FormatAs("Perform a task asynchronously")]
public Task PerformTask()
{
// do something with a method that returns a Task
return Task.CompletedTask;
}
[FormatAs("The current name should be {name}")]
public Task<string> CheckName()
{
// Use an ansynchronous method
return Task.FromResult("Jeremy");
}
[FormatAs("This condition should be true")]
public Task<bool> IsConditionTrue()
{
// Use an asynchronous result
return Task.FromResult(true);
}
}
Effectively, all you're doing is allowing Storyteller to worry about the Task
's much the same way testing
tools like xUnit or mocha do for you today.