-
tdd如何避免功能重复测试10
现在假如有功能a、b,则须为其分别编写testCase,分别记为TA、TB,然后运行、重构直至结构合理。而后又得知a、b都是c功能的子功能,那现在又得为c编写testCase,记为TC。问题来了,由于c包含a、b,则运行TC必然会调用a、b;与此同时,运行TA、TB也会调用a、b,那不就重复测试a、b了吗? 假如c又是d的子功能,a、b岂不是要被测试3次?
问题补充:yuan 写道zavakid的思路也是对的。问题在于lz似乎找不到一个办法在测C的时候隔离A和B。
mock就是干这个的。
用过jmock,但需要继续熟悉下。是不是用mock的前提是代码必须严格遵守迪米特法则,举例:public void test(){ new A().test1();//这样就无法对A进行mock。 } public void test(IA a){ a.test1();//这样就可以。 }
2011年5月09日 15:26
5个答案 按时间排序 按投票排序
-
引用是不是用mock的前提是代码必须严格遵守迪米特法则
过长的链式方法调用,setup会比较难写。mock有一个好处就是可以让你写出清晰的接口:上层只需要调用一个下层的简单接口,不需要知道下层具体的实现和结构。
2011年5月13日 09:15
-
如果A,B是通用的组件,那么A和B就必须作测试,而且是各种分支的测试。
而在测试C的时候,只要针对C最单元测试,覆盖C的各种分支就可以了,在对C的测试中,是充分信任B提供的功能的。
这是我的理解2011年5月09日 18:52
-
既然c必定包含a和b,那只需要测定c就行了,但必须确定覆盖a和b的testcase.
这个并不矛盾。
可以作局部测试,也可以作全局测试。2011年5月09日 17:50
相关推荐
TDD强调在编写实际功能代码之前,先编写能够失败的单元测试,确保测试覆盖了预期的功能需求。这种方式有助于开发者更早地发现和修复问题,提高代码质量和可维护性。 在“测试驱动编程 TDD 实例”中,我们将探讨如何...
**TDD单元测试详解** 测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,它强调在编写实际代码之前先编写测试用例。这种方法由Kent Beck在其著作《Test-Driven Development: By Example》中...
测试资产包括测试用例、测试脚本、测试数据等,这些都应当得到良好的组织和维护,以便在软件开发的全生命周期内重复使用。 在敏捷开发中,测试类型主要分为单元测试、集成测试和功能测试。单元测试通常是快速的,...
5. **重复步骤2-4**:继续为下一个功能编写测试,实现并重构,直至完成所有功能。 ### TDD的优势 - **提高代码质量**:TDD通过持续的测试和重构,确保了代码的高质量和可维护性。 - **简化问题定位**:由于每个...
7. **继续循环**:为新的功能重复上述步骤。 TDD 不仅适用于编码阶段,还可以应用于需求分析、设计等整个软件开发生命周期。例如,在需求分析阶段,可以创建验收测试;在设计阶段,可以编写单元测试。 **测试技术*...
总结来说,测试驱动开发TDD是一种以测试为指导的开发模式,它通过编写测试来驱动功能代码的实现,强调代码的可测试性、可读性和可维护性。在实际应用中,TDD能够帮助开发者发现设计上的问题,提前预防错误,并提高...
测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,它强调在编写实际功能代码之前,先编写能够失败的单元测试。TDD的核心理念是“红、绿、重构”:首先写一个测试用例(红色阶段,因为测试会...
书中还可能涵盖了对测试驱动开发的误解和误区的分析,帮助开发者避免在实践TDD时可能出现的错误倾向,比如过分注重测试覆盖率而忽略了测试的质量,或者在不适宜的场景下盲目追求TDD而未能发挥其应有的优势。...
测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际功能代码之前先编写测试代码。这种做法有助于确保软件的质量,并且能够及时发现和修复错误。在"EasyMock/JMock/MockObjects"这...
测试驱动开发(TDD, Test-Driven Development)是一种软件开发方法论,它要求在编写实际功能代码之前先编写测试用例。通过这种方式,可以确保代码的质量,并且有助于降低bug出现的概率。本篇文章将详细介绍如何使用...
在TDD实践中,功能测试是至关重要的一步,它涉及到将应用程序置于各种可能的使用场景中进行测试,以验证其行为是否符合预期。这不仅包括正常操作路径,也包括异常情况和边界条件。通过列出所有可能的应用场景,可以...
- 采用测试驱动开发(TDD)或行为驱动开发(BDD)模式,将测试融入开发过程。 - 定期进行回归测试,确保软件在每次更新后仍能正常工作。 6. **测试环境**: 创建一个与生产环境相似的测试环境,以便准确地模拟...
**测试驱动开发(Test-Driven Development, TDD)** 是一种软件开发方法论,其核心思想是在编写功能代码之前先编写测试用例。这种方法能够确保软件的功能正确性,并且有助于提高代码的质量和可维护性。 #### 二、...
**测试驱动开发**(Test-Driven Development,简称TDD)是一种以测试为先导的开发方法论,它强调在编写任何业务代码之前先编写测试用例,通过反复的“红绿重构”循环来实现功能的开发和完善。这种方法能够帮助开发...
- 测试应独立且可重复:每个测试应该不依赖于其他测试,每次运行都应有相同的结果。 - 测试覆盖:确保尽可能多的代码被测试到,通常使用覆盖率工具如php-coveralls来衡量。 3. **使用PHPUnit** - PHPUnit是PHP中...
1. **TDD的基本流程**:首先编写测试,然后编写满足测试的代码,重复此过程直到所有功能完整。 2. **单元测试**:作者可能使用了JUnit或其他单元测试框架来编写针对计算器功能的测试。 3. **Swing组件**:如何使用...
6. **添加下一个测试**:然后,继续为`ProtoStuffUtil`的其他功能编写新的测试,重复这个过程。 在压缩包中的"TDD-learn-demo1"可能包含了`ProtoStuffUtil`的测试代码(可能是JUnit或其他测试框架)、`...