タグ

C言語に関するmima3のブックマーク (1)

  • C言語のテストでスタブ関数を使うためのアイデア - Qiita

    TL;DR teratilのこのスレをまとめたものです。 マクロのトークン連結演算子(##)を使って関数名にソースファイル上の行数を付加することで、定義されている既存関数が呼ばれないようにします。 背景 既存のソースに対してテストプログラムを書く必要があり、異常系の確認のために関数をスタブに置き換えたいという状況がありました。 オブジェクト指向的な言語ではDI(Dependency Injection)というデザインパターンとしてコード例も簡単に見つかりますが、C言語での書き方はすぐに見つけられず、しばらくハマってしまいましたので共有したいと思います。 特に下記のような状況では有用ではないかと思います。 既存ソースは変更できない 置き換えたい関数が内部関数として同じファイルから呼び出されている アイデアの概要 基的なアイデアは、既存関数を別名に置き換え、テストプログラム中のスタブを呼び出

    C言語のテストでスタブ関数を使うためのアイデア - Qiita
  • 1