1

我想单元测试一个asp.net MVC的web应用程序。 我们没有使用TDD(好吧,还没有)。asp.net单元测试:标记测试为不完整

在触摸某个方法之后,我想将适当的单元测试标记为不完整或其他团队成员知道他们必须完成它。

有没有可能这样做?

提前2010年

由于我们使用Visual Studio中的内置的单元测试的可能性。 迈克尔

回答

2

您是否希望测试不会实际运行,直到他们进一步处理?如果是这样,有一个[Ignore]属性,你可以添加到每个测试,如(用于MSTest的):

[TestMethod, Ignore] 
public void TestThatNeedsToBeCompleted() 
{ 
} 

如果你使用NUnit,你可以添加一个理由参数忽略属性来解释为什么测试正在被忽略。我不认为这是可用的MSTest,但不要引用我的:)

+0

谢谢。我们不使用NUnit。那么,我只是想测试,让其他人知道他们必须实现它。有没有机会这样做? – mosquito87 2013-02-20 11:55:32

+0

您可以创建测试方法并设置Ignore属性 - 它应该在测试运行器中被拾取 – levelnis 2013-02-20 11:57:00

1

你可以简单地通过断言失败测试或抛出NotImplementedException。你会看到这些测试并不好。

或者当您使用IgnoreAttributeenable/disable时您需要测试。

[Ignore] 
[TestMethod] 
public void TestMethod { } 
+0

我认为在单元测试中手动抛出异常的工作太多了。 标记测试未完成是否真的没有归属? 我想到了忽略,并基本上把它放在我的测试方法之上后,此方法的测试没有运行。但是没有显示出这个测试没有运行的地方。 – mosquito87 2013-02-20 12:06:13

+1

你如何定义未完成?未设置为忽略的测试或者在通过时显示绿色,如果未通过,则显示为红色。如果您想向开发人员强调他们需要在测试中做一些工作,并且不关心失败的测试,请编写一些会自动导致测试失败的代码。最简单的方法是通过'NotImplementedException'属性。向单元测试的主体添加'throw new NotImplementedException();'是否真的有太多工作要做? – levelnis 2013-02-20 14:04:52