StoryQ When() 调用任务 C#

StoryQ When() calling task C#

我想使用 storyQ 将此单元测试转换为 BDD 工作单元测试

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




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

转换为 BDD

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

代码正在编译,但是我得到一个 ArgumentException 如果您在方法名称中使用 2 个下划线,请确保有 2 个参数(找到 0 个)

我知道我来晚了。我遇到了同样的问题,我修复了它,改变了我执行 When 方法的方式。我没有使用 await 并使用 Task,而是在 When 方法中使用了 oldSchool 函数 "Wait"。这样我们就可以拥有 StoryQ 理解的私有 void 函数。

像这样。

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