私はクラス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 ファイルを定義しました。