繁体   English   中英

如何在C#中测试类是否正常工作?

[英]How to test if class works properly in C#?

我已经写了一堂课,想测试一下是否运行良好。 目前,我认为最好的方法是创建引用主项目的新控制台应用程序,然后创建类的新实例并将其弄乱。 这种方法与其他方法不同,它使用关键字(没有类的全名)和调试来启用IntelliSense。

任何人都知道如何以更方便的方式做到这一点,而无需制作新的控制台应用程序?

使用控制台应用程序测试您的班级就是所谓的“穷人单元测试”。

想要进行此类测试的方向正确,我(以及SO上的其他大多数人)会建议使用某种类型的单元测试框架来帮助您。 模拟对您可能也很重要和有用。)

这是东西。 无论使用哪种框架,或者是否使用控制台应用程序来测试代码,都必须创建一个单独的项目或一个单独的重要代码块,以便能够正确且独立地执行测试。 那只是过程的一部分。 这是一项投资,但不要让多余的工作阻止您这样做。 它将在未来的一小段时间内节省大量时间和皮肤。 甚至下周。

另外,在查找单元测试时,请确保还研究测试驱动的开发 (TDD)。

单元测试绝对是必经之路。 根据所运行的VS版本,可能内置了单元测试功能,或者您可能必须使用其他工具,例如NUnit。 这两个选项都不错,可以让您全面测试您的课程。

还请记住,从长远来看,一套完整的单元测试套件也将使重构变得更加容易。 如果您重构并破坏了单元测试,您就会知道自己在某处做了嘘声。 :)

单元测试是这里的前进方向>这是一篇很好的介绍性文章

单元测试的基本概念是,您隔离并调用代码的特定部分,并断言结果是预期的并且在合理范围内。 例如,假设您有一个简单的方法可返回浮点数的平方:

public float Square(float value)
{
    return value * value;
}

合理的单元测试将是该方法返回正确的值,处理有争议的值等:

Assert.AreEqual(25, Square(5));
Assert.AreEqual(100, Square(-10));

单元测试也是查看代码如何处理边缘情况的好方法:

Assert.Throws<OverflowException>(Square(float.MaxValue));

如果您使用的是VS 2010,请查看Pex和Moles ...

http://research.microsoft.com/en-us/projects/pex/

Console App方法更像是您班上的测试工具,这很好。

但是您也可以使用单元测试框架来测试您的类。 Visual Studio内置了一个,也可以使用NUnit之类的东西。

另外,尝试在Visual Studio中使用对象测试平台。 它应该允许您创建一个新实例,修改和查看属性以及调用某些方法。 不过,它通常仅适用于非常简单的应用程序。

如果您使用Visual Studio 2008或更高版本,则可以使用MSTest框架测试代码:

1.打开“测试视图”窗口:“测试/ Windows /测试视图”;

2.添加新的单元测试项目:在解决方案资源管理器/添加/新建项目/测试项目中右键单击解决方案;

3.删除创建的测试项目中除UnitTest.cs文件以外的所有文件;

4.在[TestMethod]属性下的方法中编写单元测试:

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {
        var ranges = new Ranges();
        int sum = ranges.CountOccurrences(11);
        Assert.AreEqual(128, sum);
    }
}

5,从第1页中添加的``测试视图''窗口中运行测试

6,在``测试/ Windows /测试结果''窗口中查看测试结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM