草庐IT

功能驱动开发(TDD):在编写代码之前编写测试

在软件开发的世界里,质量和稳定性是至关重要的因素。为了确保代码的可靠性,功能驱动开发(Test-DrivenDevelopment,TDD)应运而生。TDD是一种强调在编写实际代码之前先编写测试用例的开发方法,它以其独特的流程和优势,改变了软件开发的方式。本文将深入探讨功能驱动开发的概念、流程、优势以及在实际项目中的应用。功能驱动开发的概念功能驱动开发是一种迭代开发方法,强调在编写代码之前先编写测试用例。这些测试用例定义了预期的功能和行为,然后开发人员编写足够的代码来满足这些测试。TDD的核心理念是“红-绿-重构”,即先编写失败的测试(红),然后编写代码使其通过测试(绿),最后进行代码重构以保

ios - 使用 TDD 在 Swift 中进行性能测试

刚刚学习Swift中的测试驱动开发。我在“ProjectNameTests”组中创建了一个类,它是XCTestCase的子类。classBasicFunctionTest:XCTestCase{varvalues:[Int]?overridefuncsetUp(){super.setUp()//Putsetupcodehere.Thismethodiscalledbeforetheinvocationofeachtestmethodintheclass.}overridefunctearDown(){//Putteardowncodehere.Thismethodiscalledaft

xcode - 我如何在 XCTestCase 中使用我的模块中的类?

我正在尝试测试这个类(Swiftris/Swifteris/Array2D.swift):classArray2D{letrows:Intletcolumns:Intvararray:Arrayinit(rows:Int,columns:Int){self.rows=rowsself.columns=columnsarray=Array(count:rows*columns,repeatedValue:nil)}subscript(column:Int,row:Int)->T?{get{returnarray[(row*columns)+column]}set{array[(row*c

ios - 在 Swift TDD 中模拟 NSBundle

是否可以模拟应用程序NSBundle以在TDD期间返回可预测的结果?例如:我想测试我的应用程序在文件未保存到NSBundle时的处理情况://MethodtotestfuncgetProfileImage()->UIImage{ifletprofileImagePath=getProfilePhotoPath(){UIImage(contentsOfFile:profileImagePath)}returnUIImage(named:"defaultProfileImage")}privatefuncgetProfilePhotoPath()->String?{returnNSBund

java - Mockito:你如何验证某些方法调用组的组顺序?

我正在使用Mockito通过InOrder对象验证方法调用的顺序。但我对调用的总顺序不感兴趣,只对某组方法调用全部发生在调用其他一些方法之前感兴趣。比如像这样@TestpublicvoidtestGroupOrder(){Foofoo1=mock(Foo.class);Foofoo2=mock(Foo.class);BarunderTest=newBar();underTest.addFoo(foo1);underTest.addFoo(foo2);underTest.fire()InOrderinOrder=inOrder(foo1,foo2);inorder.verify(foo1

c# - 第一个没有断言/预期异常的 TDD 测试。这值得么?

假设我开始使用TDD开发游戏。这是一个很好的第一次测试吗?[TestMethod]publicvoidCan_Start_And_End_Game(){Tetristetris=newTetris();tetris.Start();tetris.End();}它基本上迫使我定义3个东西:Tetris类及其Start()和End()方法,但除此之外这很没用。它可能会立即引起兴趣,因为我可以定义那个类和那些方法,但以后它可能不会有任何用途。它的唯一目的可能是表明必须有可能开始和结束游戏而不会在中间出现异常。你对此有何看法? 最佳答案 I

java - Java 注解可以进行单元测试吗?

我最近开始创建我自己的注解并进行TDD/BDD,我想对我的注解进行单元测试以便为它们创建一个清晰的规范。然而,由于注释基本上只是花哨的接口(interface),据我所知不能真正直接实例化,是否有任何方法可以对注释进行单元测试而不是反射? 最佳答案 我通常不会为此编写测试,但您可以简单地创建一组使用和滥用注释的测试类,以测试它是否正在存储其成员值,是否具有正确的默认值等。这当然只适用于在正确目标上指定的运行时注释。根据我的经验,注释本身很少有趣到足以保证单元测试——通常是使用它们的代码需要测试。但是我不是来自100%代码覆盖率的思想

java - Eclipse 中 NCrunch for Java 的等价物

我正在寻找一种工具,当我在Eclipse中为Java编写代码(例如NCrunchforVisualStudio)时,它可以进行连续测试。是否有类似的免费服务?理想情况下,它会持续测试,但也会实时给我反馈,告诉我哪些线路通过了哪些线路没有通过。 最佳答案 我不知道NCrunch。但是Infinitest是一个很好的Eclipse连续测试运行器(功能可能比NCrunch少)。它在每次保存操作时运行受更改代码影响的单元测试,并在状态栏中显示结果。但是,它仅适用于“普通”JUnit测试,不适用于基于插件的JUnit测试(即您不能在自己开发E

java - 我可以模拟父类(super class)方法调用吗?

有时候,你想测试一个类方法,你想对父类(superclass)方法的调用做一个期望。我没有找到使用easymock或jmock在java中实现这种期望的方法(我认为这是不可能的)。有一个(相对)干净的解决方案,使用父类(superclass)方法逻辑创建委托(delegate),然后对其设置期望,但我不知道为什么以及何时使用该解决方案,有什么想法/示例吗?谢谢 最佳答案 好吧,如果你愿意,你可以。不知道大家是否熟悉JMockit,去看看吧。目前的版本是0.999.17,同时,我们来看看吧……假设有以下类层次结构:publicclas

java - 以当前时间为条件处理单元测试

我正在尝试为我正在处理的项目中的一些实用程序类设置单元测试,其中一个类(包含许可信息)有一种方法可以根据当前时间进行一些确定。即许可证包含到期日期,许可证字符串验证该日期,但查看许可证是否过期的实际逻辑是基于当前时间。publicbooleanisValid(){returnisLicenseStringValid()&&!isExpired();}publicbooleanisExpired(){Dateexpiry=getExpiryDate();if(expiry==null){returnfalse;}Datenow=newDate();returnnow.after(expi