nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

品質を向上させるために、テストクラスを記載しよう [C++]

このように記載すれば、製品のソースコードと、テストクラスのソースコードを分離できます。

#include "box.h"
#include <climits>
#include <cassert>
#include <iostream>

class Test {

public:
        Test() {
            Run();
        }
        static void Run() {
          // 正常ケース
            assert(Test(0,0,0,0));
          // 異常ケース
            assert(Test(2,2,2,100));
          // 例外がスローされるケース
            assert(Test(INT_MAX, INT_MAX, INT_MAX, INT_MAX));
        }
        static bool Test(int x, int y, int z, int r) {
          try {
                //検証したいコードをここに記載する
          } catch (std::exception& ex) {
            return false;
          }
        }
};

static const Test test;