回调中的xUnit异步测试

本文关键字:异步 测试 xUnit 回调 | 更新日期: 2023-09-27 18:09:37

这是我目前的测试。它成功了,显然不能成功。我如何使这个测试失败?

[Fact]
public async Task ExecuteCallback()
{
    Timer timer = new Timer();
    timer.Elapsed += (sender, e) =>
    {
        new MyClassUnderTest((param) =>
        {
            Assert.Null(param);
            Assert.NotNull(param);
            timer.Stop();
        });
    };
    timer.Interval = 500;
    timer.Start();
    System.Threading.Thread.Sleep(1000);
}

我想测试我的类的内部逻辑(它是如何执行提供的Action及其参数的),特别是它在eventandler中运行时的行为,因为它在线程中做了一些棘手的事情。

回调中的xUnit异步测试

正如您所提到的,Timer事件处理程序运行在与NUnit测试不同的线程上。thrown Exception NOT被NUnit捕获,所以测试成功