• 締切済み

[単体テスト] 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 ご教授宜しくお願いいたします。

みんなの回答

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

>本体のソースコードに手を加えず、A(driver)→B(ライブラリ)→C(stub)のテストを行う方法はありますでしょうか。 残念でしょうけど、ありません。