WEB开发网
开发学院软件开发VC 使用测试优先方法开发用户界面 阅读

使用测试优先方法开发用户界面

 2008-01-19 20:24:54 来源:WEB开发网   
核心提示:编译后会有出错信息,主要的错误有:a)、我们把m_pEditor保存在MovieListWindow中了,使用测试优先方法开发用户界面(5),这需要我们修改原来的MovieListWindow的构造函数,b)、没有MovieListEditor类,因此测试没有通过,赶紧添加消息响应函数,MovieListEditor的

编译后会有出错信息,主要的错误有:

a)、我们把m_pEditor保存在MovieListWindow中了,这需要我们修改原来的MovieListWindow的构造函数。

b)、没有MovieListEditor类。

MovieListEditor的实现如下:

class AFX_EXT_CLASS MovieListEditor
{
public:
   MovieListEditor();
   virtual ~MovieListEditor();
public:
   virtual CStringArray* GetMovies(){return &m_arMovieList;};
   virtual void Add(CString strMovie){m_arMovieList.Add(strMovie);};
   virtual void Delete(int nIndex){m_arMovieList.RemoveAt(nIndex);};
private:
   CStringArray m_arMovieList;
};

再次编译,已经通过.运行测试,发现在:

CPPUNIT_ASSERT_EQUAL(MovieNamesWithAddition.GetSize(), pListBox->GetCount());

测试通不过。检查后知道原因是,我们在测试代码里:

::SendMessage(pBtn->m_hWnd, BM_CLICK, 0, 0);

给add button发送了点击按钮的消息,但是在MovieListWindow 窗口中我们没有加入消息的响应函数,因此测试没有通过。赶紧添加消息响应函数。

void MovieListWindow::OnClickAddButton()
{
   UpdateData();
   CString strNewMovieName;
   m_MovieField.GetWindowText(strNewMovieName);
   if("" != strNewMovieName)
   {
     m_pEditor->Add(strNewMovieName);
     m_MovieListBox.AddString(strNewMovieName);
   }
}

编译、测试、通过。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:使用 优先

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接