代码之家  ›  专栏  ›  技术社区  ›  Kevin Moore

如何使用MSTest测试异步代码

  •  56
  • Kevin Moore  · 技术社区  · 15 年前

    我正在写一些超级简单的异步代码。只是离线保存一个文件。

    我该怎么做?

    我想简单地阻塞测试方法,直到方法返回。我可以想象一些方法来做到这一点,但我被这方面没有任何最佳实践或帮助类所震惊。

    我懂了 对于Silverlight,但不是通用的。

    2 回复  |  直到 9 年前
        1
  •  180
  •   Spatz    5 年前

    Visual studio 2012(以前称为“Visual studio 11”) introduced support for async tests . 看起来是这样的:

    [TestMethod]
    public async Task FooTest()
    {
       var result = await SomeAsyncOperation();
       Assert.IsTrue(someCondition);
    }
    

    如评论中所述, 这个 Task 返回类型很重要 void .

        2
  •  -4
  •   Richard Banks    13 年前

    尝试使用 SystemWrapper 取而代之的是图书馆。然后在您的测试中,您可以根据自己的意愿模拟调用,将您喜欢的任何内容返回到测试中,包括错误条件,并验证您的逻辑是否按预期工作。

    如果你想看一个例子,看看 this blog post