对单元测试框架感到困惑?
Confusion about unit testing frameworks?
我从整体上了解了单元测试和TDD 的概念。
但是,我仍然对单元测试框架到底是什么感到有点困惑。每当我阅读有关单元测试的内容时,通常都是对其进行解释,然后是 "oh here are the frameworks for this language, i.e JUnit"。
但这到底是什么意思?框架只是一种允许程序员编写 simpler/efficient 单元测试的测试库吗?
另外,使用框架有什么好处?据我了解,单元测试是一次对小块代码进行的,即一种方法。但是,我可以在不使用单元测试框架的情况下单独为方法编写测试。它可能是为了测试实践的标准化吗?
我只是测试和单元测试的新手,澄清一些基本概念会很棒。
有点宽泛的问题,但我认为有一些想法可以作为答案的事实:
- 当 5、10、100、... 人使用相同的 idea/concept(例如单元测试)前进到 "work" 时,最有可能分别是某些模式 最佳实践 将会发展。人们有自己的想法,通过反复试验,他们会发现哪些想法有用,哪些没有。
- 然后人们开始交流他们的想法,这些 "commonly used" 模式经过讨论并得到进一步完善。
- 人们迟早会开始思考 "I am doing the same task over and over again; I should write a program for me to do that"。
框架就是这样产生的:它们是 工具 来支持特定 activity 的某些方面。
举个例子:使用JUnit这样的框架,我可以完全专注于编写测试用例。我不需要担心故障统计的累积;我不需要担心如何确保 所有 我的测试在我希望的时候执行。
我只是简单了解了JUnit框架的使用方法;我知道如何 进一步 将 JUnit 测试用例与 build 系统(例如 gradle 或 maven)结合使用 - 为了拥有所有我的单元测试自动执行;例如,每次我将提交推送到我的源代码管理系统时。
当然你可以在这里重新发明轮子;并自己实施所有这些。但那只是浪费时间。就像在说:"I want to move my crop to the market - let's start by building the truck myself"。不。您租用或购买预制卡车;然后你用它来做你实际上想做的事情(四处移动)。
我从整体上了解了单元测试和TDD 的概念。
但是,我仍然对单元测试框架到底是什么感到有点困惑。每当我阅读有关单元测试的内容时,通常都是对其进行解释,然后是 "oh here are the frameworks for this language, i.e JUnit"。
但这到底是什么意思?框架只是一种允许程序员编写 simpler/efficient 单元测试的测试库吗?
另外,使用框架有什么好处?据我了解,单元测试是一次对小块代码进行的,即一种方法。但是,我可以在不使用单元测试框架的情况下单独为方法编写测试。它可能是为了测试实践的标准化吗?
我只是测试和单元测试的新手,澄清一些基本概念会很棒。
有点宽泛的问题,但我认为有一些想法可以作为答案的事实:
- 当 5、10、100、... 人使用相同的 idea/concept(例如单元测试)前进到 "work" 时,最有可能分别是某些模式 最佳实践 将会发展。人们有自己的想法,通过反复试验,他们会发现哪些想法有用,哪些没有。
- 然后人们开始交流他们的想法,这些 "commonly used" 模式经过讨论并得到进一步完善。
- 人们迟早会开始思考 "I am doing the same task over and over again; I should write a program for me to do that"。
框架就是这样产生的:它们是 工具 来支持特定 activity 的某些方面。
举个例子:使用JUnit这样的框架,我可以完全专注于编写测试用例。我不需要担心故障统计的累积;我不需要担心如何确保 所有 我的测试在我希望的时候执行。
我只是简单了解了JUnit框架的使用方法;我知道如何 进一步 将 JUnit 测试用例与 build 系统(例如 gradle 或 maven)结合使用 - 为了拥有所有我的单元测试自动执行;例如,每次我将提交推送到我的源代码管理系统时。
当然你可以在这里重新发明轮子;并自己实施所有这些。但那只是浪费时间。就像在说:"I want to move my crop to the market - let's start by building the truck myself"。不。您租用或购买预制卡车;然后你用它来做你实际上想做的事情(四处移动)。