B/S开发框架测试驱动开发(TDD)指导书(八)

本指导书详细介绍了敏捷实践——TDD的各个方面。TDD是提升单元测试有效性的工程方法,Web开发框架中遵循测试先行、小步快跑和及时重构的原则,能有效减少过度设计,促进降低开发成本、以及提高软件质量和设计效率。另外,本指导书还对遗留系统的TDD,以及TDD工具的选择给予参考性建议,B/S开发框架并通过大量的实践案例引导你充分体验TDD的魅力。

TDD实战(二)

web开发框架TDD项目代码在析构时,删除已有的策略

B/S开发框架项目开发中考虑资源释放问题,用例1往容器里面增加策略数据,那么在容器销毁时、程序退出时,策略数据应该能够被释放。

web开发框架TDD销毁容器

                                                                                                 图1销毁容器,删除已有策略

测试代码

//B/S开发框架项目TDD增加两个策略对象Strategy1、Strategy2,在销毁容器时,必须释放

void test_should_be_able_to_free_all_added_strategy_when_deconstruct()
{
	StrategyContentContainer * container = new StrategyContentContainer;
	MockObject<PricingStrategyIF> Strategy1;
	container ->addStrategy(0, Strategy1) ;
	Strategy1.willBeDeleted();

	MockObject<PricingStrategyIF> Strategy2;
	container ->addStrategy(1, Strategy2) ;
	Strategy2.willBeDeleted();

	delete container;
	Strategy1.verify();
	Strategy2.verify();
}

//如何检测Web开发框架TDD的Strategy1、Strategy2已经被释放了,无法从被测入口函数的返回值、参数来判定。Mock提供了willBeDelete、verify,检验被测对象的内部行为。

功能代码

//销毁容器,实现析构函数,释放map中的策略对象

//同样先实现析构函数,让编译通过

StrategyContentContainer::~StrategyContentContainer()
{
}

//测试不通过

//然后再往B/S开发框架项目析构函数里面补充具体实现


StrategyContentContainer::~StrategyContentContainer()
{
    delete This;
    StrategyMap::iterator it = container.begin();
    for (; it != container.end(); ++it)
    {
        delete it->second;
    }
    container.clear();
}


测试通过,功能正确

代码结构:良好

标签: B/S开发框架测试驱动开发

网站&系统开发技术学习交流群:463167176

本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
转载请注明:文章转载自:软件开发框架 » B/S开发框架测试驱动开发(TDD)指导书(八)
本文标题:B/S开发框架测试驱动开发(TDD)指导书(八)
本文地址:http://www.hocode.com/OrgTec/Agile/0014.html

相关文章: 深入敏捷框架--公司级Story培训指导书(一)

电话
电话 18718672256

扫一扫
二维码