je tentais de passer outre une simple fonction de bibliothèque cmath - « Pow »Gmock - comment remplacer la fonction bibliothèque
Voici mon code:
#include "stdafx.h"
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <cmath>
class powInterface {
public:
virtual ~powInterface() {}
virtual double pow(double _Xx, int _Yx) = 0;
};
class LibXMock : public powInterface {
public:
virtual ~LibXMock() {}
MOCK_METHOD2(pow, double(double _Xx, int _Yx));
};
int main()
{
LibXMock LibXMockObj;
EXPECT_CALL(LibXMockObj, pow(10.00, 3));
double ans = LibXMockObj.pow(10.00, 3);
EXPECT_EQ(2, ans);
}
Le code compile bien, mais l'exécution ci-dessous donne la sortie:
c:\gmock>
_test_example.cpp(36): error: Expected: 2
To be equal to: ans
Which is: 0
Press any key to continue . . .
Je ne suis pas sûr pourquoi valeur retournée est 0 - Je me suis demandé si nous devons ajouter une définition auto de la méthode « pow » donc j'injectais le code ci-dessous:
double pow(double _Xx, int _Yx)
{
return LibXMockObj.pow(_Xx , _Yx);
}
Maintenant, le compilateur ne parvient pas à compiler le code indiquant la redéfinition de la méthode pow - comment puis-je implémenter ma propre méthode de bibliothèque de pow et l'appeler?