单元测试文档

我想知道,从那些谁记录单元测试它们是如何记录它。 据我所知,大多数TDD追随者声​​称“代码说话”,从而,因为代码应该是自描述的测试文档还不是很重要的。 不够公平,但我想知道如何记录单元测试, 不是是否记录它们。

我作为一个开发者的经验告诉我,了解旧代码(包括单元测试)是困难的。

那么,什么是在测试文档的重要? 如果是测试方法的名称没有足够的描述,使文档是合理的?

--------------解决方案-------------

由于要求Thorsten79,​​我将阐述我的意见作为一个答案。 我原来的意见是:

“代码说话”是不幸的是完全错误的,因为一个非开发人员无法读取的代码,而他至少可以部分地阅读和理解生成的文档,这样一来,他就可以知道测试考什么。 这是在情况下,对客户的充分理解域,只是看不懂的代码尤为重要,会变得更加重要,当单元测试也考验硬件,像在嵌入式领域,因为那样的话你测试的东西,就可以看出。

当你正在做单元测试,你要知道你在写他们只为你(或你的同事),或者如果你也写他们为其他人。 很多时候,你应该写代码为你的读者 ,而不是为了您的方便。

在像在我公司混合的硬件/软件开发,客户知道自己想要什么。 如果他们的现场设备具有接收一定总线命令何时做复位,必须有一个单元测试,发送一个命令,并检查所述设备是否被重置。 我们这样做是在这里,现在用的NUnit的单元测试框架,以及一些定制软件和硬件,使得发送和接收指令(甚至按下按钮)成为可能。 这是伟大的,因为唯一的选择是手动做这一切。

客户绝对想知道哪些测试在那里,他甚至想运行测试自己。 如果测试没有适当的记录,他不知道这个测试做什么,如果所有的测试,他认为他需要在那里不能检查,并运行测试的时候,他不知道是什么就行了。 因为他看不懂的代码。他知道所使用的总线系统比我们的开发人员更好,但他们就是无法读取的代码。 如果测试失败,他不知道为什么,甚至无法说什么,他认为测试应该做的。 这不是一件好事。

已经记录了单元测试正常,我们有

  • 代码文档为开发商
  • 测试文档的客户,可以用来证明设备做什么它应该做的,即什么的客户订购
  • 生成任何格式的文档的能力,这甚至可以传递到其他相关方,如制造商

适当在这方面的意思是:撰写清晰的语言,可以通过非开发人员可以理解。 你可以留下来的技术,但不写东西只有你能理解。 后者当然也为任何其他评论和任何代码重要。

独立于我们确切的情况,我想这就是我想在单元测试中所有的时间,即使他们是纯粹的软件。 顾客可以忽略单元测试,他并不关心,如基本功能测试。 但是,仅仅具有文档有没有从来没有伤害。

正如我已经写在注释中另一个答案:此外,生成的文件也是一个很好的起点,如果你(或你的老板或同事,或者检测部门)要检查哪些测试有什么他们这样做,因为你可以浏览它,而不通过代码挖掘。

在测试代码本身:

  • 由于方法级注释解释测试是测试/回补。
  • 在一流水平,注释表明实际的类被测试(这实际上可以从测试类的名称推断,这样实际上比在方法层面的意见不那么重要)。

随着测试覆盖率报告

  • 如的Cobertura。 这也是文档,因为它表明你的测试覆盖和他们是什么不是。

如果需要的话评论复杂的测试或方案,但有利于在第一时间读取测试。

在另一方面,我试图让我的测试中为自己说话。 换一种说法:

[Test]
public void person_should_say_hello() {
// Arrange.
var person = new Person();
// Act.
string result = person.SayHello();
// Assert.
Assert.AreEqual("Hello", result, "Person did not say hello");
}

如果我是来看看这个测试我看到它的人(虽然这将是在PersonTest.cs为线索;)),那么如果有什么突破,将发生在SayHello方法。 断言信息是有用的,不仅对阅读测试,但进行测试时更容易看到他们在GUI的。

继排列的AAA风格,法和断言使得测试基本上是文件本身。 如果这个测试是比较复杂的,你可以在上面测试功能解释这是怎么回事添加注释。 与往常一样,你应该确保这些不断更新。

作为一个方面说明,使用下划线符号测试的名字,使他们更加可读,比较这对:

public void PersonShouldSayHello()

这对于长期方法名,可以让阅读测试更加困难。 虽然这点通常是主观的。

当我回来的旧的测试和不理解它的时候了

  1. 我重构如果可能的话
  2. 或者写注释会作出我的理解对不对走

当你写你的测试用例是一样的,当你写你的代码,everyhting是晶莹剔透给你。 这使得它很难设想什么,你应该写使代码更清晰。

请注意,这并不意味着我从来不写任何评论 。 目前仍有大量的情况下,当我只知道,我将会有一个很难搞清楚什么是特定的代码一样。

我通常在这些情况下,1点开始...

提高单元测试可执行规范行为驱动开发的观点:BDD是TDD的发展,其中单元测试使用通用语言和传神的名字(基于业务领域和共享由开发商和利益相关者的语言) (testCannotCreateDuplicateEntry)来描述代码是应该做的。 一些BDD框架推的想法很远,显示可执行文件写入接近自然语言,例如。

分类:单元测试 时间:2012-01-01 人气:0
分享到:

相关文章

  • 从另一个用户使用的文档语言问题 2014-05-04

    我收到一个附加的Word文档中的电子邮件从同事. 当我去拼写检查文档,Word坚持使用法语拼写字典. 该文件由英语的人用英文写的. 我的电脑是完全设置为使用只有英文词典,并再次,在我的同事的文档的字是英文单词. 我不知道她看到她的cmputer什么,但她走,不访问它. 奇怪的是,这是我写的,她发回的变化与其他文档. 只有她的变化被标记为拼写错误,当你点击标记词字,它表明一个法语拼写. 埃里克 --------------解决方案------------- 你不提您所使用的Word版本. 在200

  • 批量处理文档语言 2015-02-22

    嗨, 我想批量处理PDF文件的负担,让他们有一个文件语言. 我看着在使用Javascript,但我无法找到与之相对应的变量. 我知道这是最后流数据. 有什么建议么? 谢谢 --------------解决方案------------- 你的意思是设置文档的基本语言属性(/目录/郎)? 或者是其他东西? 基本语言属性 - 谢谢. 我不知道你用的是什么软件,PDF文件的工作 - 但语言被发现在目录字典中的郎键的值. 9的Acrobat Pro的 - 这是简单的设置属性中的语言,但有一对夫妇的数百个文

  • 如何更改为给定的文档的语言? 2012-08-16

    从这个线程分裂. 你自定义词典,顺便说一句,应该始终保持设置为"无语言". 之所以如此,是你的拼写单词添加在你处理所有的文件仍然可用. 否则,如果你打开​​Pommie或猕猴桃创建的文档,您的自定义词典将如果它被设置为AUS被禁用. 你好约翰, 我刚安装Office.mac 2011家庭和学生在我的Mac,并有关于增加一个额外的词典的选择问题. 基本上,我的默认是英文(英国)和我的大多数文件都是用英文写的. 然而,由于目前我正在学习法语,我想有加有一个法国的字典,这样我可以检查拼写/语

  • 如何设置一个特定的文档的默认语言环境 2012-11-16

    我感到很办公室管理语言,键盘和默认语言环境的方式混淆. 据它们链接到当前语言,键盘和默认语言环境,我用我的系统,这真的让没有任何意义. 无论是我的系统,其实,我可能需要使用特定的标准来格式化日期,时间,货币等写一个文档中的特定语言. 我使用意大利键盘的意大利计算机上的英文平台. 通过使用键盘我可以写英语,意大利语或法语的文件. 当我写在一个特定的语言文件,我还使用日期,货币等与语言相一致的格式. 的语言和区域必须被链接到文档,而不是系统. 但是办公室工作在非常糟糕的国际作家的一种方式. 例如,如

  • 如何选择谷歌文档的OCR语言? 2014-04-02

    谷歌文档API提供OCR服务. 在手动上传我可以指定文档语言(到OCR非英语文件要求),但我看不出API参考/例这样的选项. 我缺少的东西,或此功能缺失? --------------解决方案------------- 根据文档可以使用'''OCR语言'''参数... http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#OCR

  • 文档的(人)语言 2014-06-02

    有没有一种方法(程序,库),以大约知道哪种语言的文档是写的? 我有一大堆文本文件(〜500K)的混合语言的国际化导入启用CMS(Drupal的).. 我不需要完美的比赛,只有一些猜测. --------------解决方案------------- 有一个很简单的方法来做到这一点,因为你已经在各种不同的语言,你需要确定语料库的数据. 这就是所谓的N-gram建模. 我认为类语言::标识已经做了这个,虽然如此,这是你最好的选择,而不是实现自己的. 我说你最好的选择是寻找关键词 - 文章,那种事 -

  • 突出我可以编辑的区域 - 保护文档 - Word 2007中 2012-07-23

    微软,请给我一个解决的"突出显示我可以编辑的区域"在我的模板的文档保护区的不适深思熟虑的设置. 我需要锁定在我们的全球模板的头,所以这些都不能进行修改. 然而,当有人创建了一个基于模板中的可编辑区域(一切减去头内容)的文档以黄色突出显示. 谁认为这是一个好主意吗? 我明白使用Word所有而不仅仅是大企业建立先进的模板,这可能是一个很好的补充,任何人创建窗体(也许),但请给我一个很好的理由这样做. 如果不是,告诉我如何重写它,而无需创建宏或调整Normal.dot. 让用户手动去审查&g

  • 如果我使用XHTML过渡文档类型,然后将它显示(在我的投资组合),像我不是一个专业的专家吗? 2014-06-02

    如果我使用XHTML过渡文档类型,然后将它显示(在我的投资组合),像我不是一个专业的专家吗? 这是一个客户谁不是付出太多的工作,而他不知道的Web标准. 我想用一些废弃或表象的项目,以节省时间,所以我应该怎么给他? 网站与XHTML严格但也有一些验证错误 or 网站与XHTML过渡,但与W3C验证 什么将是一件好事,如果我补充一点,网站的投资组合? --------------解决方案------------- 使用任何你遵守. 使用一个"严"的doctype将不能证明你是一个&quo

  • 单元测试和文档测试,如何让我的文件调用? 2014-09-08

    我有包含我想在做单元测试文档测试Python脚本的文件夹. 当我尝试用一​​个文件这样来测试它: import unittest suite = unittest.TestSuite() suite.addTest('/homes/ndeklein/workspace/MS/PyMS/pyMS/baseFunctions.py') unittest.TextTestRunner().run(suite) 我得到这个错误: TypeError: the test to add must be ca

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.558 (s). 10 q(s)