我是一名大学生,用c#在这里和那里制作他的节目,主要是科学模拟.学习NUnit有什么用吗?我一直在听人们谈论它,但我并没有完全掌握它是什么.这是每个程序员应该使用的东西,还是更适合有很多人的大项目的东西?
谢谢
测试是编写软件的重要部分 - 任何类型的软件.无论你是在写一个小程序来排序数字,还是一个系统来发射太空船到火星.
现在它曾经是开发人员编写他们的代码,然后手动操作 - 通常在调试器中 - 来验证它是否达到了他们的预期.这是测试代码的一种痛苦而乏味的方法.它不仅乏味而且痛苦 - 但它不可重复.这意味着每次进行更改时,您都必须手动重复测试,并希望您不会忘记任何事情或做一些不同的事情.质量受损 - 而且有很多悲伤和哭泣.
最终,开发人员意识到他们可以编写一个单独的程序,通过运行它们期望它处理的条件来运行它们的代码,并让代码验证结果.事情开始变得更好.这种测试方法通常被称为测试工具.
编写测试工具有所帮助,但是有很多重复的代码 - 有很多与运行和验证测试相关的基础结构.然而,一些非常聪明的开发人员说:"我们不会一遍又一遍地编写锅炉板代码......我们将为我们建立一个库." 因此,像JUnit和NUnit(以及许多其他人)这样的单元测试工具诞生了.
这些库(和工具)可帮助您构建,组织和执行测试.它们提供了方便的方法来验证条件,捕获和跟踪异常,并报告哪些测试通过,哪些测试失败.最后,开发人员可以专注于重要的部分:编写测试和验证逻辑,以帮助确保他们编写的代码有效.这些测试是可重复的.它们可以作为自动构建过程的一部分运行.随着新的失败点的发现和修复,它们可以传承下来并被其他人加入.在原始代码编写完成后的几个月和几年内,原始开发人员可以重新运行它们,以确保工作正常.
如果您计划成为任何级别的成功软件开发人员,在任何规模的组织中(即使只是您自己) - 您应该了解 - 并 接受 单元测试.
以下是一些资源可以帮助您:
NUnit文档和示例
单元测试的艺术
单元测试最佳实践
写出可以节省时间和眼泪的可维护单元测试
是的你应该使用它.(或任何试验跑步者)
测试是编程的一个非常重要的部分(在我看来),所以如果你(或其他人)改变了一部分代码,并且它碰巧会破坏某些东西,那么你的测试应该选择它.
嗯,这就是我的看法,我还是单元测试的新手.
一个例子.
让我们说我有一个方法
Add(int a, int b) { return a + b; }
我的单元测试将是:
[Test] public void Test001_TestAdd() { Assert.IsTrue(Add(1,3) == 4); }
如果有人将添加方法改为让我们说:
Add(int a, int b) { return a * b; }
我的单元测试会失败,可能会挽救生命(如果你在医疗软件或NASA工作),或者阻止潜在的错误:)
现在,如果他们有单元测试,这可能不会发生,简单问题,错过.