Lar*_*sik 4 testing unit-testing
我加入了一个新的团队,我在理解他们如何进行单元测试时遇到了问题.当我询问单元测试的编写地点时,他们解释说他们没有这样进行单元测试.
他们解释说,他们所谓的单元测试是他们实际检查他们在本地编写的代码,并且所有的点都是连接的.对我来说,这是集成测试,只是在本地测试您的代码.
我的印象是,单元测试是为了验证代码的一小部分中的行为而编写的代码.例如,您可以编写单元测试以确保它返回正确的值,并对数据库进行适当的调用.使用像NUnit或MbUnit这样的框架来帮助你进行断言.
我的单元测试应该快速而快速.对我而言,您需要这些,以便您可以自动化它,并为您的应用程序提供大量测试,以确保它的行为与您的预期相同.
有人可以澄清我或他们的误解吗?
我曾经做过测试的地方,并称之为单元测试.它让我想起了归因于安倍林肯的一句话:
林肯:狗有多少条腿?
其他盖伊:4.
林肯:如果我们称尾巴为腿怎么办?
其他人:嗯,那么它会有5个.
林肯:不,答案仍然是4.称尾巴为一条腿并不是这样.
他们解释说,他们所谓的单元测试是他们实际检查他们在本地编写的代码,并且所有的点都是连接的.
那不是单元测试.这是一个代码审查.代码评论很好,但没有实际的单元测试,事情就会破裂.
单元测试涉及编写代码.具体而言,单元测试在一个单元上运行,该单元只是软件的一个类或组件.
如果受测试的类依赖于另一个类,并且您同时测试这两个类,那么您将进行集成测试.集成测试很好.根据语言/框架,您可以对单元测试和集成测试使用相同的测试框架(例如,junit for java).如果你有一个依赖项但是模拟或存根依赖,那么你有一个纯单元测试.
我的单元测试应该快速而快速.对我而言,您需要这些,以便您可以自动化它,并为您的应用程序提供大量测试,以确保它的行为与您的预期相同.
这基本上是正确的.开发单元测试的"快速和快速"取决于所测试内容的复杂程度以及编写测试的开发人员的技能.你肯定希望随着时间的推移建立一套测试,所以你知道什么时候因为代码库变得更复杂而出现问题.这就是测试如何使您的代码库更易于维护,告诉您在进行更改时停止运行的功能.