【发布时间】:2014-02-20 09:36:31
【问题描述】:
今天我们意识到有些测试会抛出异常,但所有测试都“通过”。事实上,异常文本显示为绿色。
这有意义吗?
如果异常未处理,有没有办法使测试失败(我知道大多数情况下都会发生这种情况)?
截图:
测试方法:
[TestMethod]
public void CommunicationCore_CommunicationController_ConnectRequestWellProcessed()
{
// Arrange
IUnityContainer container = new UnityContainer();
ICommonInitializer initializer = new CommonInitializer(container);
initializer.Initialize(); // register all types
DriveConnection connectionSettings = CreateFakeConnetionSettings(1);
Transaction transaction = null;
ICommunicationController controller = container.Resolve<ICommunicationController>();
object locker = new object();
// Act
controller.Connect(
connectionSettings,
result =>
{
transaction = result;
lock (locker)
{
Monitor.Pulse(locker);
}
});
// asyncronous communication wait for the process of the message
lock (locker)
{
Monitor.Wait(locker, 10000);
}
// Assert
bool connectSuccessfully = (transaction != null) && !transaction.Response.ErrorResult.ErrorDetected;
Assert.IsTrue(connectSuccessfully);
((IDisposable)controller).Dispose();
}
【问题讨论】:
-
您是否启动了新线程和/或进程?
-
@LieRyan:是的,我做到了。这有关系吗?
-
@SoMoS 事实上,由于异常是在那个线程中抛出的,所以它非常重要。
标签: c# visual-studio-2010 unit-testing exception mstest