[単体テスト] static関数のstub
以下の構成の関数Bをテストしようとしています。
[xxx.c]---------
A() {
B();
}
----------------
[yyy.c]---------
B() {
C();
}
static C() {
}
----------------
テスト対象がBのため、driverAとstubCを作成しました。
また、本体xxx.c, yyy.cは共有ライブラリにしているため、A関数・C関数とも名前衝突は起きません。
期待するコールとしては、A(driver)→B(ライブラリ)→C(stub)です。
しかし現状A(driver)→B(ライブラリ)→C(ライブラリ)となってしまいます。
これは、C関数がstaticな為、ビルド時にstubではなくライブラリを優先してリンクしてしまうからだと思います。(そもそもライブラリしか探索しないのか。。。)
本体のソースコードに手を加えず、A(driver)→B(ライブラリ)→C(stub)のテストを行う方法はありますでしょうか。
※環境
linuxのgcc
ご教授宜しくお願いいたします。
お礼
別のページ(http://okwave.jp/qa/q6860965.html)でも、 追加の質問を致しました。
補足
有り難う御座います。 助かりました。