Google tornou Open-Source seu Framework Mocking C++
Após tornar open-source seu framework C++ de teste a poucos meses atrás, o Google acabou de repetir o movimento com o Google C++ Mocking Framework (Google Mock) sob a BSD license.
O Google Mock é usado em mais de 100 projetos no Google e é inspirado pelo jMock e EasyMock, de acordo com Zhanyong Wan, um engenheiro de software do Google. O framework pode ser usado no Linux, Windows ou Mac OS X e é direcionado a desenvolvedores C++. Zhanyong exemplifica o mocking:
class TaxServer { // Returns the tax rate of a location (by postal code) or -1 on error.
virtual double FetchTaxRate(
const string& postal_code) = 0;
virtual void CloseConnection() = 0;
};class MockTaxServer : public TaxServer { // #1
MOCK_METHOD1(FetchTaxRate, double(const string&));
MOCK_METHOD0(CloseConnection, void());
};
TEST(ShoppingCartTest, StillCallsCloseIfServerErrorOccurs) {
MockTaxServer mock_taxserver; // #2
EXPECT_CALL(mock_taxserver, FetchTaxRate(_)).WillOnce(Return(-1)); // #3
EXPECT_CALL(mock_taxserver, CloseConnection());
ShoppingCart cart(&mock_taxserver); // #4
cart.CalculateTax(); // Calls FetchTaxRate()
// and CloseConnection().
} // #5
Derive uma classe mock de uma interface. Para cada método virtual, conte quantos argumentos ela tem, nomeie o resultado n e a defina usando MOCK_METHODn, aqueles arguemtnos são o nome e o tipo do método.
Crie uma instância da classe Mock. Ela será usada onde você normalmente usaria o objeto real.
Defina as expectativas do Mock Object (Como ele será usado? O que ele vai fazer?). Por exemplo, o primeiro EXPECT_CALL diz que FetchTaxRate() será chamado e irá retornar um erro. O underscore (_) é um matcher que diz que o argumento pode ser qualquer coisa. O Google Mock possue muitos matchers que você pode usar para especificar precisamente o que o argumento deve ser. Você pode também definir seu próprio matcher ou usar um valor exato.
Exercite código que usa o mock object. Você irá receber um erro imediatamente se o método mock for chamado mais vezes do que o esperado ou com argumentos errados.
Quando o mock object é destruído, ele verifica se todas as expectativas definidas foram atingidas.
Algins links úteis: Home Page. Docuementação Completa. Download. Google Mock para Iniciantes é uma introdução rápida ao Google Mock, acompanhado de exemplos e explicações.
Conteúdo educacional
Mobilidade: Frameworks, SOs e o Mercado
Ricardo Ogliari 23 Mai, 2013
Caminhos de uma estratégia mobile
Sérgio Lopes 23 Mai, 2013
Complexidade organizacional no Século 21
Alexandre Magno 16 Mai, 2013

Olá visitante
Você precisa cadastrar-se no InfoQ Brasil ou Login para enviar comentários. Há muitas vantagens em se cadastrar.Obtenha o máximo da experiência do InfoQ Brasil.
Dê sua opinião