web-dev-qa-db-ja.com

ユニットテストc ++ setup()およびteardown()

私は現在、 google mock でユニットテストを学んでいます。googlemockでのvirtual void SetUp()virtual void TearDown()の通常の使用法は何ですか?コードを使用したシナリオの例が適切です。前もって感謝します。

11
user2785929

繰り返されないように、各テストの開始時と終了時に実行するコードを因数分解するためにあります。

例えば ​​:

namespace {
  class FooTest : public ::testing::Test {

  protected:
    Foo * pFoo_;

    FooTest() {
    }

    virtual ~FooTest() {
    }

    virtual void SetUp() {
      pFoo_ = new Foo();
    }

    virtual void TearDown() {
      delete pFoo_;
    }

  };

  TEST_F(FooTest, CanDoBar) {
      // You can assume that the code in SetUp has been executed
      //         pFoo_->bar(...)
      // The code in TearDown will be run after the end of this test
  }

  TEST_F(FooTest, CanDoBaz) {
     // The code from SetUp will have been executed *again*
     // pFoo_->baz(...)
      // The code in TearDown will be run *again* after the end of this test

  }

} // Namespace
13
phtrivier