我总是通过 - 不幸的是 - 减少使用事件来解决这个问题。然而这次我想出了一个漂亮的技巧,但我不认为下面会被认为是一个合适的方法。有没有推荐的方法来达到相同的结果?
注意:如果没有在_args.Fixture上获得空引用异常,除非您在其上设置断点 - 竞争条件。
private Parser _parser;
private ParsedArgs _args;
[TestFixtureSetUp]
public void Setup()
{
_parser = new Parser();
_parser.DataParsed += DataParsed;
}
void DataParsed(object sender, ParsedArgs e)
{
_args = e;
}
[Test]
public void TestDocParse()
{
_parser.ParseFixture(File.ReadAllText(EventDataPath));
while (_args == null || _args.Fixture == null) { }
Assert.IsNotNull(_args.Fixture);
var fixture = _args.Fixture;
Assert.AreEqual("2F7PY1662477", fixture.Id);
}
我发现以下导致不得不考虑一个可能不准确的时间尺度来完成解析......
我的目标是测试fixture.Id 是否等于“2F7PY1662477”。
谢谢