c# - StoryQ When() 调用任务 C#

标签 c# unit-testing bdd storyq

我想使用 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 和任务,而是在 When 方法中使用了 oldSchool 函数“Wait”。通过这种方式,我们可以获得 StoryQ 理解的私有(private) void 函数。

像这样。

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

关于c# - StoryQ When() 调用任务 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46888815/

相关文章:

c# - Entity Framework 6 Model First 数据验证与 WPF

c# - 流利的 NHibernate 和 NLog

c# - 这种 Assert.AreSame 应该返回 true 吗?

R 两个 SummarizedExperiment 对象的比较

java - Vert.x 单元测试不执行

ruby-on-rails - SimpleCov 没有覆盖内部定义/方法

c# - 如何使用 C# 代码连接或登录 Odoo?在与 Odoo 连接后,如何从 C# 向 Odoo 数据库添加自定义字段?

c# - C# 中的正则表达式,这可能吗?

watin - 使用 WatiN 和 SpecFlow 对 UI 组件进行 BDD

scala - 对测试用例进行分组或规范 2 中的 "shared_examples_for"等效项