ネイティブ ユニット テスト プロジェクトを使用して、Visual Studios 2012 でユニット テストを作成しようとしています。
これは私が持っているテストです:
TEST_METHOD(CalculationsRoundTests)
{
int result = Calculations::Round(1.0);
Assert::AreEqual(1, result);
}
クラスのエクスポート:
#ifdef EXPORT_TEST_FUNCTIONS
#define MY_CALCULATIONS_EXPORT __declspec(dllexport)
#else
#define MY_CALCULATIONS_EXPORT
#endif
...
class CALCULATIONS_EXPORT Calculations {
...
public:
static int Round(const double& x);
関数自体:
int Calculations::Round(const double& x)
{
int temp;
if (floor(x) + 0.5 > x)
temp = floor(x);
else
temp = ceil(x);
return int(temp);
}
ただし、ほとんどの場合、テストはエラー コード c0000005 (アクセス違反) で失敗します。テストは、x、または関数で宣言されている可能性のあるその他の変数が初めて使用されたときに失敗します。