googletest:sample4分析

目录

googletest:sample1
googletest:sample2
googletest:sample3
googletest:sample4
googletest:sample5
googletest:sample6
googletest:sample7
googletest:sample8
googletest:sample9

被测文件

simple4实现了一个简单计数器,提供增加计数、减少计数、打印功能.

simple4.h

// A simple monotonic counter.
class Counter {
 private:
  int counter_;

 public:
  // Creates a counter that starts at 0.
  Counter() : counter_(0) {}

  // Returns the current counter value, and increments it.
  int Increment();

  // Returns the current counter value, and decrements it.
  int Decrement();

  // Prints the current counter value to STDOUT.
  void Print() const;
};

simple4.cc

#include "sample4.h"

#include <stdio.h>

// Returns the current counter value, and increments it.
int Counter::Increment() { return counter_++; }

// Returns the current counter value, and decrements it.
// counter can not be less than 0, return 0 in this case
int Counter::Decrement() {
  if (counter_ == 0) {
    return counter_;
  } else {
    return counter_--;
  }
}

// Prints the current counter value to STDOUT.
void Counter::Print() const { printf("%d", counter_); }

测试文件

sample4_unittests.cc

#include "sample4.h"

#include "gtest/gtest.h"

namespace {
// Tests the Increment() method.

TEST(Counter, Increment) {
  Counter c;

  // Test that counter 0 returns 0
  EXPECT_EQ(0, c.Decrement());

  // EXPECT_EQ() evaluates its arguments exactly once, so they
  // can have side effects.

  EXPECT_EQ(0, c.Increment());
  EXPECT_EQ(1, c.Increment());
  EXPECT_EQ(2, c.Increment());

  EXPECT_EQ(3, c.Decrement());
}

}  // namespace

测试文件只对Increment()方法进行了测试,其中的Decrement()只是用来返回当前计时值.

posted @ 2025-02-27 20:57  明明1109  阅读(8)  评论(0)    收藏  举报