TEST_F:多个测试使用同样的配置

转载 2015年07月07日 22:27:53

转自:http://blog.chinaunix.net/uid-24709751-id-4358266.html

https://code.google.com/p/googletest/wiki/V1_7_Primer
场景:
1. 准备数据A,TEST测试a
2. 准备数据A,TEST测试b
....
3. 准备数据A,TEST测试n

问题:
准备数据A太多次,,,可以使用TEST_F,就是为了解决这种情况。

  1. For each test defined with TEST_F(), Google Test will:

  2.     Create a fresh test fixture at runtime
  3.     Immediately initialize it via SetUp() ,
  4.     Run the test
  5.     Clean up by calling TearDown()
  6.     Delete the test fixture. Note that different tests in the same test case have different test fixture objects, and Google Test always deletes a test fixture before it creates the next one. Google Test does not reuse the same test fixture for multiple tests. Any changes one test makes to the fixture donot affect other tests. 

  7. As an example, let's write tests for a FIFO queue class named Queue, which has the following interface:

  8. template // E is the element type.
  9. class Queue {
  10.  public:
  11.   Queue();
  12.   void Enqueue(const E& element);
  13.   E* Dequeue(); // Returns NULL if the queue is empty.
  14.   size_t size() const;
  15.   ...
  16. };

  17. First, define a fixture class. By convention, you should give it the name FooTest where Foo is the class being tested.

  18. class QueueTest : public ::testing::Test {
  19.  protected:
  20.   virtual void SetUp() {
  21.     q1_.Enqueue(1);
  22.     q2_.Enqueue(2);
  23.     q2_.Enqueue(3);
  24.   }

  25.   // virtual void TearDown() {}

  26.   Queue q0_;
  27.   Queue q1_;
  28.   Queue q2_;
  29. };

  30. In this case, TearDown() is not needed since we don't have to clean up after each test, other than what's already done by the destructor.

  31. Now we'll write tests using TEST_F() and this fixture.

  32. TEST_F(QueueTest, IsEmptyInitially) {
  33.   EXPECT_EQ(0, q0_.size());
  34. }

  35. TEST_F(QueueTest, DequeueWorks) {
  36.   int* n = q0_.Dequeue();
  37.   EXPECT_EQ(NULL, n);

  38.   n = q1_.Dequeue();
  39.   ASSERT_TRUE(!= NULL);
  40.   EXPECT_EQ(1, *n);
  41.   EXPECT_EQ(0, q1_.size());
  42.   delete n;

  43.   n = q2_.Dequeue();
  44.   ASSERT_TRUE(!= NULL);
  45.   EXPECT_EQ(2, *n);
  46.   EXPECT_EQ(1, q2_.size());
  47.   delete n;
  48. }

ssm配置多个数据源、junit4测试

  • 2017年11月15日 09:34
  • 78.13MB
  • 下载

idea下test自动测试profiles配置

  • 2015年05月28日 21:55
  • 24KB
  • 下载

【Robotium测试】环境配置和Android test project项目创建

1. 官网下载SDK包和JDK包 2. 配置系统环境变量 android_home:\sdk Java_home: \bin path: %android_home%platoform-tools;%...
  • Yve_Mei
  • Yve_Mei
  • 2015年05月26日 15:29
  • 695

Google开源单元测试框架Google Test:VS2012 配置

由题目可知,Google Test(简称gtest)是Google发布的一个开源C/C++测试框架,被应用于多个开源项目及Google内部项目中,包括Chrome浏览器、LLVM编译器架构、Proto...

codeblocks+Mingw下配置单元测试工具 google test

codeblocks+Mingw下配置单元测试工具 google test
  • xidwong
  • xidwong
  • 2015年03月08日 17:57
  • 531

maven中使用spring的test包结合junit4进行测试。

1.先在src/test/resources中加入spring的配置文件spring.xml 2.引入maven org.springframework spring-tes...
  • czlpf
  • czlpf
  • 2015年08月04日 17:39
  • 10434

Test Flight 测试使用说明

Test Flight 测试使 说明 TestFlight提供的管 办法是将测试者分为内部成员和外部成员。 论上说,这 两种测试者都可以在测试阶段使 你的App, 过所谓的内部主要是指iTunesC...
  • idlegao
  • idlegao
  • 2017年01月11日 08:32
  • 460

Google Test(GTest)使用方法和源码解析——模板类测试技术分析和应用

本文介绍了GTest的模板类测试技术分析和应用

Linux下Google Test测试环境安装和使用,实战总结

google test(libgtes)是由谷歌开发的一款基于xunit框架的跨平台单元测试框架,C#上的NUnit,Java的JUnit写单元测试非常容易,也不乏可视化工具与IDE集成插件,深受喜欢...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TEST_F:多个测试使用同样的配置
举报原因:
原因补充:

(最多只允许输入30个字)