C# 我应该创建单元测试库吗

C# 我应该创建单元测试库吗,c#,asp.net,.net,wpf,unit-testing,C#,Asp.net,.net,Wpf,Unit Testing,如果我创建相同测试的基本测试类,这有意义吗?这种情况下的情况是什么。例如,我有几乎相同的viewmodels:XReport、YReport等,我创建了一个基本测试: public abstract class ReportTestBase { public T UC_ReportUserControl_Create<T>() where T : class, IViewModel { return NinjectService.Get<T&

如果我创建相同测试的基本测试类,这有意义吗?这种情况下的情况是什么。例如,我有几乎相同的viewmodels: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>());
    }
}

这些代码只是示例。我对方法学很感兴趣。

你可以这么做,但正如Stuff所注意到的,继承可能太多了

您不能简单地创建一个带有静态帮助器方法的TestsCommon类来分解所有冗余代码吗


我已经使用过这种方法,它工作得很好,不会使代码变得太模糊。

您可以这样做,但正如Stuff所注意到的,继承可能太多了

您不能简单地创建一个带有静态帮助器方法的TestsCommon类来分解所有冗余代码吗


我已经使用过这种方法,它工作得很好,不会使代码变得太模糊。

如果NUnit方法中的[Initialize][SetUp]有一些共性,子类化对于需要反复设置相同设置的测试类可能很有用

注意MSTest中的顺序


否则,我将按照Pragmateek的建议创建一个hepler类。

如果NUnit方法中的[Initialize][SetUp]有一些共性,子类化可能对需要反复进行相同设置的测试类很有用

注意MSTest中的顺序


否则,我会按照Pragmateek的建议创建一个hepler类。

我不会这么做。测试逻辑应该尽可能简单。是的,我知道,但是有大量的冗余代码。这是怎么回事?任何让你的生活更轻松的事情都应该做。单元测试只是代码,使代码可读和可维护的每一种技术都是合适的。我们经常这样做是为了减少复制粘贴。因此,我们实现了包含帮助程序或通用测试方法的抽象测试基类。Abstract还避免了单元测试运行程序将基本测试类作为单独的测试类来执行。在报表库中,添加公共TestContext TestContext{get;set;},因为这也很有用。我不会这样做。测试逻辑应该尽可能简单。是的,我知道,但是有大量的冗余代码。这是怎么回事?任何让你的生活更轻松的事情都应该做。单元测试只是代码,使代码可读和可维护的每一种技术都是合适的。我们经常这样做是为了减少复制粘贴。因此,我们实现了包含帮助程序或通用测试方法的抽象测试基类。抽象还避免了单元测试运行程序将基本测试类作为单独的测试类来执行。向报表库中添加公共TestContext TestContext{get;set;},因为这也很有用。