GMOCK: надо издеваться над поведением asyn c - PullRequest
0 голосов
/ 22 марта 2020
bool Test::someFun() {
    if (libFunction([](bool b) {
            if (b) {
                doThisWork();
            } else {
                doThatWork();
            }
        })) {
        return true;
    } else return false;
}

подпись libFunction:

typedef void (*FUN)(bool);
bool libFunction(FUN f);

Привет, ребята, мне нужно протестировать функцию someFun с помощью Gtest / GMOCK. мне нужно издеваться над libFunction, которая написана в C. эта libFunction принимает аргумент обратного вызова (лямбда).

Не могли бы вы помочь мне с ниже 2 запросами.

  1. как смоделировать функцию C (libFunction)?
  2. как протестировать обратный вызов, который передается в качестве аргумента libFunction, поскольку моя настоящая реализация находится в лямбда-выражении, которое необходимо протестировать. Есть ли способ заменить определение libFunction на фиктивное определение, чтобы во время выполнения тестового примера моя фиктивная реализация вызывала вместо фактической, и я мог имитировать поведение libFunction в фиктивной функции. Не могли бы вы предложить лучший способ проверить это.
...