2

我想使用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)

4

1 回答 1

1

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

像这样的东西。

private void MyWhenMethod()
{
    _sut.AsyncMethodRun().Wait()
}
于 2018-02-22T08:48:12.017 回答