2016-07-08 5 views
1

は、私はこれらのいくつかは、入力変数としてポインタを取るCMockaモック関数で入力変数(ポインタ)をチェックする必要がありますか?

使用してC言語でモック一連の機能を書いていますし、私は彼ら(ptr != NULL)かをチェックすべきかどうかを確認していません。

一般に、入力チェックを実行するのはモック関数ですか?

「はい」の場合、エラーが見つかった場合、どのように動作するのですか? フレームワークによって提供されるアサート機能を使用する必要がありますか?

答えて

1

参考ポインタがいくつかの模擬関数に渡されるパラメータの場合は、check_expected(...)expect_value()でチェックすることができます。

void function_under_test(){ 
    char c = 'c'; 
    int ret; 
    //... 
    ret = subfunction(&c); 
    if(ret == 0) 
     printf("Success"); 
    //... 
} 

int __wrap_mocked_subfunction(int* p_paramater){ 
    check_expected(p_paramater); 
    return mock(); 
} 

test(void **state){ 
    expect_not_value(__wrap_mocked_functions, p_paramater, NULL); 
    will_return(0); 

    function_under_test(); 
} 

エラーは自動的に報告されます。

の例では、ここで見つけることができます:https://lwn.net/Articles/558106/

あなたが実際にそれらを確認する必要がある場合は、あなたとあなたのコードとあなたの意見や要件に依存します。

関連する問題