0

私はクラスAを持っています:

class A
{
  public:
    void setA1(int new_a){a1 = new_a;}
    void setA2(int new_a){a2 = new_a;}
    bool numbersAreEqual() {b.isEqual(a1,a2);}

  private:
    B b;
    int a1;
    int a2;
};

それから私はクラスBを持っています:

class B
{
  public:
    bool isEqual(int b1, int b2) { return (b1 == b2);}
}

次に、単体テストで、クラス A と B を別々にテストしたいので、クラス A をテストするためにクラス B をスタブする必要があります。両方のクラスが同じバイナリでテストされます。

コードを作りました

using namespace stub;
bool UnitTest_A()
{
  A a;
  a.setA1(1);
  a.setA2(2);
  return a.numbersAreEqual();
}

次に、stub.h があります。

namespace stub {

class B
{
  public:
    bool isEqual(int b1, int b2);
}

}

および Stub.c

namespace stub {

bool B::isEqual(int b1, int b2)
{
  return true;
}

}

スタブが使用されていないように見えるため、テスト ケースは失敗します。Makefile では、A.cpp、B.cpp、TestMain.cpp、TestA.cpp、TestB.cpp、および Stub.cpp ファイルを定義しました。

4

0 に答える 0