单元专题提供单元的最新资讯内容,帮你更好的了解单元。
我做TDD,我组织我的单元测试已经相当松散了。我倾向于从一个代表下一个故事或功能块的文件开始,并写出所有的单元测试来做这个工作。 当然,如果我正在引入一个新的类,我通常会为该类别制作单独的单元测试模块或文件,但是我不将测试本身组织到任何更高级别的结构中。结果是我写的代码很快,我相信我的实际程序结构相当好,但单元测试本身是“凌乱的”。特别是,它们的结构倾向于概括开发过程的系统发育。有时,我认为自己是
我知道测试驱动开发的一个定义原则是首先编写单元测试,然后编写代码以通过单元测试,但是有必要这样做吗? 我发现我经常不知道我正在测试什么,直到我写了它,主要是因为过去的几个项目,我已经从更多的演变从概念证明,而不是设计。 我以前尝试过写单元测试,它可以是有用的,但对我来说似乎不自然。 这里有一些很好的评论,但是我觉得有一件事情会被忽略。 写作测试首先推动您的设计。这是重要的一步。如果您在同一时间或“
我想知道我应该怎样写单元测试。有一些类很难写单元测试。例如,我正在编写一些处理音频的程序。用于从麦克风捕获音频的类和播放音频到扬声器的类,我如何为这些类写单元测试?我不能得到这些类的输出和输入,所以几乎不可能测试它们?我可以做的唯一的测试是吸气和安静,这些无聊的测试。所以问题是,单元测试的指导线是什么?而我应该怎么处理这些课堂难以测试? 使用单位测试是有意义的 – 不要达到100%的覆盖范围。主要
在Java中编写代码时,使用 composition和 dependency injection可以轻松地通过嘲笑协作对象进行纯单元测试。 我发现在Erlang中做同样的事情不那么简单,并且使得更脏的代码。 这可能是我的错,因为我对Erlang很新,对于JUnit,EasyMock和java接口非常沉迷 假设我有这个愚蠢的功能: %% module mymod handle_announce(An
我有一个测试需要工作超过1分钟(VS2008,MSTest,从VisualStudio启动测试): const int TestTimeout = 1; [TestMethod] [Timeout(10*60*1000)] // 10 minutes public void Login_ExpirationFail_Test() { IAuthen
我在职业生涯的各个方面都做过小单位测试。每当我再次开始潜水,总是会让我如何证明我的测试是正确的。我怎么知道我的单元测试中没有错误?通常我最终运行应用程序,证明它是有效的,然后使用单元测试作为一种回归测试。建议的方法是什么和/或您对此问题采取的方法? 编辑:我也意识到你可以编写一些很容易理解的小型,细粒度的单元测试。但是,如果您认为小巧细腻的代码是完美无缺的,那么您只需编写小而精细的程序,而不需要单
我正在处理一些包含数据库访问的代码。测试驱动开发包括集成测试以及通常的单元测试? 谢谢! TDD的黄金法则说:永远不要在没有失败的测试的情况下写新的功能。 如果您没有遵守此规则,那么您正在部署TDD(就像在应用程序中为几个类编写单元测试)。这比没有什么更好(至少你知道这些类做了所需的工作,但你不能确定应用程序的其他部分工作,这些类可以与它们集成),但这并不能保证你的应用程序按预期工作。因此,您需要
我通过测试驱动的开发永远感到好奇,但是当我尝试实际的项目时,我永远都不会跟随它。我有几个哲学问题,在我尝试时不断出现: >如何处理大的变化?当涉及测试单个功能(一些参数,结果值,很少的副作用)时,TDD是一个没有脑子的。但是当你需要彻底地检修大的东西,如从SAX解析库切换到DOM解析库?当您的代码处于中间状态时,如何保持测试代码重构周期?一旦你开始改变,你会得到一个失败的测试,直到你完成了大修(除
当你有单元测试的时候你怎么做? >一些一般单位测试 >更复杂的测试检查边缘情况,具体取决于一般情况 举个例子,想象一下测试一个CSV阅读器(我刚刚做了一个示意图符号), def test_readCsv(): ... @dependsOn(test_readCsv) def test_readCsv_duplicateColumnName(): ... @dependsOn(test_read
例如,有一个接口IMyInterface,三个类支持这个接口: class A : IMyInterface { } class B : IMyInterface { } class C : IMyInterface { } 以最简单的方式,我可以编写三个测试类:ATest,BTest,CTest,并分别进行测试。然而,由于它们支持相同的界面,因此大多数测试代码将是一样的,很难维护。如何使用简
我最近一直在玩ADO.NET实体框架,我发现它适合我正在开发的项目的需要。我也很酷的非侵入性。 在从现有数据库生成数据模型之后,您将面临生成模型和业务逻辑集成的任务。更具体地说,我习惯于通过DAL接口的mocks / stub来集成测试与数据存储交互的类。问题是您不能使用ADO.NET实体框架,因为它生成的实体是没有接口的简单类。 问题是:如何应用TDD方法来开发使用ADO.NET Entity
我不是全新的单元测试的概念,但同时我还没有掌握它们。 最近我一直在编写单元测试的一个问题是使用TDD方法写我的代码是:我应该在什么级别进行测试? 有时我想知道我是否过度使用单元测试。 开发商在什么时候停止编写单元测试并完成实际工作? 在人们认为我反对使用TDD之前,我可能需要澄清这个问题 我正在努力的是我的测试的粒度…. >当我的应用程序有一个配置文件我做 测试可以检索值 从文件?我倾向于是….但
我正在学习测试驱动开发,并试图使用Moq库进行嘲笑。 Mock类的安装方法的目的是什么? Moq Mock对象的默认行为是存放所有方法和属性。这意味着使用任何参数调用该方法/属性不会失败,并返回特定返回类型的默认值。 由于以下任何或全部原因,您可以调用安装方法: >你想限制输入值到方法。 public interface ICalculator { int Sum(int val1, val2
我没有在这个具体问题的教程中找到很多 所以我有一个名为“Job”的类,它具有公共的和一个公共的Run()函数。课程中的所有内容都是私有的,封装在课堂中。 (你可能还记得这个Testing only the public method on a mid sized class?的一个老帖子,这个回复帮我很大) 这个Run()方法做了一大堆事情 – 将excel文件作为输入,从中提取数据,向第三方数据
我读了很多关于TDD的单元测试的问题和答案,但我没有发现任何答案:我从哪里开始? 我和团队已经完成了一些项目,其中我们采用了单元测试,对于我们的代码…但是代码先进行单元测试。在开发过程的某个时候,首先编写测试,然后编写代码,使我们更加体验TDD风格,这是很自然的。 现在我们想做下一步,尝试从一开始就用TDD开始一个新的项目。这里的问题…从哪里开始?当我没有代码的时候,我会写什么第一个测试? 假设有
因此,从SO和其他网站在互联网上的录像最好的回应似乎是: void DoSomething() { Logger.Log("Doing something!"); // Code... } 现在通常你会避免使用静态方法,但是在记录(特殊情况)的情况下,这是最简单和最干净的路由。在静态类中,您可以通过配置文件/框架轻松地注入一个实例,使其具有与DI相同的效果。 我的问题来自于单元测试
我们开始的一个新项目引入了许多我们不熟悉的新技术,以及我们没有很多实践的架构.换句话说,我们所做的服务类之间的接口和交互等.由于内部和客户的反馈,重建是相当不稳定的,更是如此.虽然我一直对不断变化的规格感到沮丧,但我认为这在某种程度上是构建我们以前从未构建的东西的必要部分 – 如果我们只是坚持原始设计和范围,最终产品可能会比它变得更加创新和有用的东西要少得多. 我还介绍了测试驱动开发(TDD),因
你可能认为这个问题就像之前在StackOverflow上提出的 this问题一样.但我试图以不同的方式看待事物. 在TDD中,我们编写包含不同条件,标准,验证码的测试.如果一个班级通过了所有这些测试,我们就可以了.这是一种确保班级实际上做了它应该做的事情的方式,而不是别的. 如果你按照Bertrand Meyers的书中逐字逐句地介绍面向对象的软件构建,那么这个类本身就有内部和外部的契约,所以它只
我总是了解到使用单元测试进行最大程度的代码覆盖是很好的.我还听到像微软这样的大公司的开发人员说他们编写了比可执行代码本身更多的测试代码. 现在,这真的很棒吗?难道它似乎有时像完全没时间损失那样只会使维护变得更加困难吗? 例如,假设我有一个方法DisplayBooks(),它填充数据库中的书籍列表.产品要求表明,如果商店中有超过一百本书,则只能显示一百本. 所以,有了TDD, >我将首先制作一个单元
我一直试图找出编写测试友好代码的最佳实践,但更具体地说是与对象构造相关的实践.在蓝皮书中,我们发现我们应该在创建对象时强制执行不变量,以避免我们的实体,值对象等的损坏,考虑到这一点,Design By Contract似乎是避免我们的对象损坏的解决方案,但是当我们遵循这一点,我们最终可能会编写如下代码: class Car { //Constructor public Car(Door