【发布时间】:2013-06-10 13:29:40
【问题描述】:
如果我创建相同测试的基础测试类是否有意义?在这种情况下是什么场景。例如,我有几乎相同的视图模型:XReport、YReport 等,我创建了一个基础测试:
public abstract class ReportTestBase
{
public T UC_ReportUserControl_Create<T>() where T : class, IViewModel
{
return NinjectService.Get<T>();
}
}
然后我创建衍生物:
[TestClass]
public class PsoriasisReport : ReportTestBase
{
[TestMethod]
public void UC_PsoriasisReportUserControl_Create()
{
Assert.IsNotNull(UC_ReportUserControl_Create<IPsoriasisReportUserControl>());
}
}
这些代码只是示例。我对方法学很感兴趣。
【问题讨论】:
-
我不会那样做。测试逻辑应尽可能简单。
-
是的,我知道,但是有大量的冗余代码。那是怎么回事
-
应该做任何让你的生活更轻松的事情。单元测试只是代码,每一种使代码可读和可维护的技术都是合适的。
-
我们经常这样做以减少复制粘贴。因此,我们实现了包含帮助程序或通用测试方法的抽象测试库类。 Abstract 还避免了单元测试运行器将基测试类作为单独的测试类执行。
-
在您的报告库中添加
public TestContext TestContext { get; set; },因为这也很有用。
标签: c# asp.net .net wpf unit-testing