有这么一个待测试的方法:
public void GetVersion(Action<get_version_response> action) {...}
该方法传入个acction,当方法处理完后,会返回个异步的action,现在想通过xunit对该方法进行测试,由于是异步的,于是我是这样做的:
[Fact]
public void GetVersion()
{
var Major = 0;
readerTool.GetVersion(o =>
{
Major = o.Major;
});
Thread.Sleep(2000);
Assert.True(Major > 0);
}
这方式是通过线程休息强行等待action返回执行完成,在进行判断。对于这种情况,正确的测试方法应该是如何测得呢?