0

我正在使用 VS2012 为在方法上使用 async/await 模式的类编写单元测试。该类还有我想写入 TestContext 的事件,以便它们在测试输出中可见。我发现的问题是我的测试类中的事件处理程序方法没有被调用。测试通过但未调用负责 TestContext.WriteLine 的事件处理程序。这是代码。

[TestMethod]
public async Task Organize_Copy_No_Search_Pattern_Specified()
{
    string result = null;

    ClassToTest _classToTest = new ClassToTest(sourceFolder, destFolder);
    _classToTest.OrganizerResult += _classToTest_Result;

    CancellationToken cancellationToken = new CancellationToken();

    result = await _classToTest._RunMethodAsync(cancellationToken);

    int areSame = String.Compare(SuccessMsg, result, true);

    Assert.AreEqual(0, areSame); // Passes

}

// This event handler never gets called?
void _classToTest_Result(string syncMessage)
{
    string msg = syncMessage;
    TestContext.WriteLine(msg);
}

private TestContext testContextInstance;
public TestContext TestContext
{
    get
    {
        return testContextInstance;
    }
    set
    {
        testContextInstance = value;
    }
}
4

0 回答 0