불행히도 -이 이벤트는 항상 덜 사용합니다. 그러나 이번에는 멋진 트릭을 생각해 냈지만, 다음 사항은 적절한 접근 방식으로 생각하지 않습니다. 동일한 결과를 얻기 위해 권장되는 방법이 있습니까?NUnit 테스트 이벤트 Args 데이터
NB 없이을 사용하면 _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);
}
내가
the following는 구문 분석이 완료 할 수있는 잠재적으로 부정확 한 척도를 생각하는 데에지도 것을 발견
...
나는 fixture.Id가 "2F7PY1662477"같은지 테스트하는 것을 목표로하고있다 .
감사
나는'사용합니다 vcsjones System.Threading.SpinWait.SpinUntil (() => _args = 널 (null) && _args.Fixture = NULL, 30000!!), 즉 '하나, 단지 확인하도록 테스트는 결코 루프에 걸리지 않습니다. 자동 재설정 이벤트 또는 이와 유사한 이벤트를 사용할 수도 있습니다. – vcsjones
여기에 몇 가지가 있습니다. 하나는 파서가 완료 될 때까지 기다리는 중입니다. 두 개는 파서를 테스트하는 것뿐만 아니라 이벤트를 테스트하는 것입니다. while 루프를 완료하지 않고 _args.Fixture가 null이 아닌지 테스트하지 않기 때문에 테스트는 약간 의미가 없습니다. –
Nah가 작동하지 ... 나는 단지 루프에 갇혀 있다는 것을 알고 있습니다. 당신은 내가 실제로 두 부분을 테스트하는 추가 문제를 제기합니다. –