gtest_ присвоение значения в функции с помощью setargpointee - PullRequest
0 голосов
/ 29 октября 2018

Я тестирую функцию адаптера с помощью gtest и не могу успешно использовать SetArgPointee в моем тесте.

class Adapter:{
    public:
    int getTaskStateAdapter(){
       //do something
       int task_state = -1;
       int exit_value = -1;
       result = getTaskState(&task_state, &exit_value);

       if(result != 0){
          //throws here
       }
       if(exit_value != 0){
          //throws here
       }

    return task_state; 
    }
}

Я проверяю, будет ли функция адаптера генерировать исключение, если значение_входа не равно 0.

TEST(class_name, test_name){
    EXPECT_CALL(ClassMock::instance(), getTaskState(_,_)).WillOnce(DoAll(SetArgPointee<1>(-1), Return(0)));//Mock class is included in the test file

    EXPECT_THROW(Adapter::getTaskAdapter(), ERxEXC::Exception);//ERxEXC::Exception is a self-defined exception
}

Однако, какое бы значение я ни установил в SetArgPointee для exit_value, исключение никогда не генерировалось.

1 Ответ

0 голосов
/ 29 октября 2018

Эти тестовые коды полностью верны, проблема исходит из исходного кода.

...