我的类有一个公共(public)方法 Start
、一个私有(private)方法和一个事件 Finishing
。 开始
调用new Thread(private_method)
。使用事件的私有(private)方法返回值。当这个方法完成他们的工作时,再调用这个事件。
现在我想给这个类写测试。如果我这样写:
[Test]
public void Test1()
{
SomeClass someObject = new SomeClass();
someObject.Finishing += new SomeClass.FinishingEventHandler((sender, a) =>
{
Assert.True(false);
});
someObject.Start(); // when this method will finish, then call event Finishing
}
它应该是失败的,但它不是。我认为方法 Test1
在引发事件之前已完成。那么,我该如何测试这段代码呢?如何测试创建新线程的方法以及我们从事件中获得的结果
最佳答案
NUnit 具有等待断言的内置功能。它被称为“之后”:
[Test]
public void ShouldRaiseFinishedEvent()
{
SomeClass someObject = new SomeClass();
bool eventRaised = false;
someObject.SomethingFinished += (o, e) => { eventRaised = true; };
someObject.DoSomething();
Assert.That(eventRaised, Is.True.After(500));
}
关于c# - 创建新线程的测试方法和我们从事件中获得的结果(NUnit 2.6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9831514/