《测试驱动开发实用指南(影印版)》读书笔记1

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

今天开始读《测试驱动开发实用指南(影印版)》里的例子。打算边读边把里边的例子用C++写一遍。

在《Test-Driven Development-A Practical Guide》书中的影片管理例子中,作者列出了10个User Story:

1) Movie List

2) Movies Can Be Renamed

3) Movies Are Unique

4) Rattings

5) Categories

6) Filter on Category

7) Persistence

8) Sorting

9) Multiple Ratings

10) Reviews

作者将围绕这十个User Story来展开开发。

一、Movie List

需要设计一个影片列表container.

Test 1: 空的列表的size应该为0。

测试代码:

void TestMovieList::testEmptyListSize()

{

m_pMovieList = new MovieList();

CPPUNIT_ASSERT_EQUAL(0, m_pMovieList->Size());

}

编译没通过,写产品代码:

增加一个类MovieList:

class AFX_EXT_CLASS MovieList

{

public:

MovieList();

virtual ~MovieList();

public:

int Size();

};

size()方法:

int MovieList::Size()

{

return 0;

}

编译,测试,通过。

Test 2: 加入一个影片后列表size应该为1.

测试代码:

void TestMovieList::testSizeAfterAddingOne()

{

Movie starWars;

MovieList oneItemList;

oneItemList.Add(&starWars);

CPPUNIT_ASSERT_EQUAL(1, oneItemList.Size());

}

编译没通过,写产品代码.

加入新类Movie

class AFX_EXT_CLASS Movie

{

public:

Movie();

virtual ~Movie();

};

MovieList加入新的方法Add():

void MovieList::Add(Movie* pMovie)

{

m_nNumberOfMovies = 1;

}

同时加入新的数据成员用于保存影片个数:

int m_nNumberOfMovies;

今天先写到这,我们完成的测试如图1:

图1

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航