Chinaunix首页 | 论坛 | 博客
  • 博客访问: 873437
  • 博文数量: 372
  • 博客积分: 10063
  • 博客等级: 中将
  • 技术积分: 4220
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 11:36
文章分类

全部博文(372)

文章存档

2012年(372)

分类: 虚拟化

2012-03-11 16:47:06

 第一步的目标是, 数据与UI的分离.我是这样做, 新建MyData类, 把数据移动到GetName()中.

Code Snippet
  1. static wxString MyData::GetName()
  2. {
  3. static int clickNum=0;
  4. ++clickNum;
  5. wxString result;
  6. if (clickNum % 2) {
  7. result.assign(_T("Hello BianBian!"));
  8. }
  9. return result;
  10. }

那么 点击事件就可以改为,

Code Snippet
  1. void MyDialog::OnClickButton( wxCommandEvent& event )
  2. {
  3. wxStaticText* pCtrl = (wxStaticText*) FindWindow(ID_LABEL);
  4. pCtrl->SetLabel(MyData::GetName());
  5. Layout();
  6. }

第二部的目标是,对MyData进行测试, 我使用的是 googleTesting

新建一个main函数, 以宏来决定是否测试, 如下

Code Snippet
  1. #ifdef USING_TEST
  2. int main(int argc, char* argv[])
  3. {
  4. testing::InitGoogleTest(&argc, argv);
  5. return RUN_ALL_TESTS();
  6. }
  7. #endif // USING_TEST

接下来, 新建TestMyData.cpp, 写好测试即可

Code Snippet
  1. TEST(TestMyData, GetName)
  2. {
  3. for (int i=0; i<100; ++i)
  4. {
  5. wxString result = (i+1)%2? _T("Hello BianBian!"): wxEmptyString;
  6. EXPECT_TRUE(result == MyData::GetName()) << "click Num: " << i+1;
  7. }
  8. }

这样就可以对数据逻辑进行测试.

下一个目标是UI与UI的逻辑进行分离.

阅读(514) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~