Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2014, 15:05   #1
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию Не работает простой пример объекта-заглушки на Google Mock

Привет!

Запускаю простой пример с GMock, но выдаётся сообщение:
Цитата:
../HtmlParser_gtests/main.cpp:19: Failure
Actual function call count doesn't match EXPECT_CALL(mock, getUrlAsString("http://example.net"))...
Expected: to be called once
Actual: never called - unsatisfied and active
Вот все файлы проекта:

main.cpp
Код:
#include <string>
#include <vector>
#include <gtest/gtest.h>
#include <gmock/gmock.h>
#include "HttpFetch.h"
#include "HtmlParser.h"
using ::testing::Return;

class HttpFetchMock : public HttpFetch {
public:

    MOCK_CONST_METHOD1( getUrlAsString, std::string( const std::string& ) );
};

TEST( HtmlParser, NoData ) {
    char *html;
    HttpFetchMock mock;
    HtmlParser parser( mock );
    EXPECT_CALL( mock, getUrlAsString( "http://example.net" ) )
        .WillOnce(Return(std::string(html)));
    std::vector<std::string> links = parser.getAllLinks( "http://example.net" );
    EXPECT_EQ(0, links.size());
}

int main( int argc, char *argv[] ) {
    ::testing::InitGoogleMock( &argc, argv );
    return RUN_ALL_TESTS( );
}
HtmlParser.h
Код:
#ifndef HTMLPARSER_H
#define HTMLPARSER_H

#include <string>
#include <vector>
#include "HttpFetch.h"

class HtmlParser {
public:

    HtmlParser( const HttpFetch &http ) : m_http( http ) {

    }

    std::vector<std::string> getAllLinks( const std::string &url ) const {
        // TODO
        return std::vector<std::string>();
    }

private:
    HttpFetch m_http;
};

#endif // HTMLPARSER_H
HttpFetch.h
Код:
#ifndef HTTPFETCH_H
#define HTTPFETCH_H

#include <string>

class HttpFetch {
public:

    virtual ~HttpFetch( ) {

    }

    virtual std::string getUrlAsString( const std::string &url ) const {
        // TODO
        return std::string( );
    }
};

#endif // HTTPFETCH_H
Заранее спасибо за помощь!

P.S. Пример взял отсюда: http://blog.divebomb.org/2011/07/my-...nd-googlemock/
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Знакомство с фреймворком Google Mock 8Observer8 Общие вопросы C/C++ 0 28.05.2014 20:14
DirectX Простой пример Кудаив Помощь студентам 0 24.10.2012 09:51
[MASM611] простой пример ... stupidstudent Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 06.02.2012 21:21
Не запускается простой пример SkrudjMakdak Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 0 29.12.2011 12:44
Самый простой пример J-Max C++ Builder 1 03.12.2010 22:59