`
shannon977
  • 浏览: 19837 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

谈谈单元测试中的测试桩实践 (5)

阅读更多

接着,SystemTimeSynchronizerTests就可以作很大的改进,通过预设标准时间,测试SystemTimeSynchronizer#syncTime()的各个处理分支了。

 

/**shannon.demo.unittest is the unit test codes

 * package for the demonstration.

 */

package shannon.demo.unittest;

 

import shannon.demo.DebugClock;

import shannon.demo.SystemTimeSynchronizer;

import shannon.demo.UnitTestFirewall;

import junit.framework.TestCase;

 

/**<code>SystemTimeSynchronizerTest</code> is the

 * unit test class for SystemTimeSynchronizer

 * @author Shannon Qian

 */

public class SystemTimeSynchronizerTest extends TestCase {

 

    protected void setUp() throws Exception {

       super.setUp();

       UnitTestFirewall.setDebugging(true);

       UnitTestFirewall.presetClock(debugClock);

    }

 

    protected void tearDown() throws Exception {

       super.tearDown();

    }

   

    private static DebugClock debugClock=new DebugClock();

   

    public void testSyncTime() {

       SystemTimeSynchronizer sync=new SystemTimeSynchronizer();

       assertTrue(sync.syncTime()==0);

      

       debugClock.setTime(System.currentTimeMillis()-10L);

       assertTrue(sync.syncTime()==1);

      

       debugClock.setTime(System.currentTimeMillis()+10L);

       assertTrue(sync.syncTime()==-1);

    }

}

 

这是我在具体工作中一个图省力的法子,所谓单元测试中的“防火墙”就是将外部模块的影响屏蔽在模块单元测试之外,不知是否违背单元测试的精神。

再总结一下这种控制单元测试范围的方法,有两个好处:

1) 免去许多配置和调试外部模块的工作;

       2) 可以方便的模拟其他模块的各种行为,提供各种场景测试条件。

当然,实际问题要复杂的多,所以我们可能要比这个例子做得更多。但正因为实际问题复杂,我们省的力气也要多得多。

另外有同事告诉我JMockeasyMock也提供和我上面所讨论的法子类似的功能。我花了极少的时间试着了解过JMock,但还没入门,所知很少,还望有经验的同行指教。再次感谢myworkfirst的指点。

 

(完)

分享到:
评论

相关推荐

    Counter单元测试用例以及桩设计

    在软件开发过程中,单元测试是确保代码质量的关键环节。针对给定的`Counter`单元测试用例和桩设计,我们将深入探讨如何有效地测试这个模块,以及桩(Mock)设计的重要性。 `Counter`模块可能是一个用于统计代码行和...

    用java写的socket服务器测试桩

    测试桩的作用是在实际服务不可用时,模拟其行为,以便进行单元测试或集成测试。Java Socket服务器测试桩应具备以下特性: 1. 可配置性:允许设置不同的响应策略,如返回固定数据、模拟延迟等。 2. 可扩展性:方便...

    新利用驱动程序和桩程序进行单元测试

    总结来说,驱动程序和桩程序是单元测试中不可或缺的组成部分,它们帮助我们创建可重复、可控的测试环境,确保代码的质量和稳定性。在Java软件测试中,熟练运用这些工具和策略,可以大大提高开发效率和软件的可靠性。

    Tessy—嵌入式软件单元测试/集成测试工具

    在V模型开发中,Tessy主要应用在单元测试和集成测试阶段。单元测试通过运行代码检测出函数中错误,比如算法错误、接口问题等;集成测试则在单元测试的基础上验证单元之间接口的正确性。基于越早发现bug开发成本越低...

    jetty测试桩

    标题中的"jetty测试桩"指的是使用Jetty服务器作为测试环境中的模拟服务,它能够帮助开发者在实际接口未开发或不可用时进行测试。Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,常用于快速搭建测试环境...

    测试桩HTTP

    测试桩HTTP测试桩HTTP 测试桩HTTP 测试桩HTTP

    接口测试的go测试桩

    go语言测试桩,用于模拟接口测试,也可做性能测试桩,哈哈

    SMGP 测试桩(测试专用)

    在IT领域,测试桩(Test Stub)是一种软件组件,它模拟了系统中的某个部分,通常是为了在孤立环境下测试其他组件。在这个场景中,"SMGP测试桩"是专为SMGP协议设计的测试工具,用于接收消息并实现实时跟踪功能。SMGP...

    基于RTRT单元测试

    **单元测试**是在软件开发过程中的一项基础性测试活动,它的主要目的是确保软件中的各个最小可测试单元(通常指一个单独的功能模块)能够按照预期正确运行。这种测试方式有助于尽早发现并修复软件缺陷,提高软件质量...

    Testbed单元测试指导书(补充版).docx

    2. 单元测试操作步骤:本部分详细介绍了Testbed单元测试的操作步骤,包括被测对象的选择、编译器的确认、进入TBRun单元测试模块、创建Sequence、创建测试用例、设置桩函数、设置测试用例的输入及预期输出、执行测试...

    单元测试十大难题及解决思路

    然而,在实践中,单元测试常常遇到各种难题,以下是十大难题及解决思路: 一、代码的可测性 单元测试的难题之一是代码的可测性问题。代码通常各部分都是互相关联的,但单元测试却是需要把代码单元跟别的代码分开...

    单元测试的流程详细介绍

    单元测试是一种软件开发过程中的重要环节,用于验证代码的各个独立单元是否按预期工作。它主要关注单个函数、方法或类的行为,确保它们在独立环境中正确执行其职责。以下是对单元测试流程的详细说明: 1. **理解...

    .NET单元测试艺术 中文版 PDF版

    学习目录: 第i部分 入 门 ...第8章 在组织中引入单元测试 231 第9章 修改遗留代码 251 声明: .NET单元测试艺术中文版PDF,仅供学习交流使用,PDF中广告页面不属于本人。请在24小时内自行删除。

    c++ 单元测试 技巧整理

    本文档提供了C++单元测试的基本框架和实践指南,旨在帮助开发者更好地理解如何利用CppUnit进行有效的单元测试。通过遵循这些步骤,可以显著提高软件的质量和稳定性,同时也能加快开发流程。未来将继续探索更多高级...

    Testbed工具手册—单元测试方法V1.0.doc

    在进行单元测试时,需要将桩函数返回值映射到测试用例中,以便于Testbed工具正确地执行测试用例。桩函数返回值是指软件中的桩函数返回值,需要正确地映射,以便于软件正确地执行。 #### 3.3.7 运行测试用例 在进行...

Global site tag (gtag.js) - Google Analytics