Usando objetos simulados em TDD
Mock Objects
Ao testar o código, você geralmente precisa usar objetos simulados em vez de reais. Eles têm a mesma interface que objetos reais (ou falsos), mas você pode especificar o comportamento deles no tempo de execução - quais métodos serão chamados, quantas vezes, com que argumentos, etc.
Eles também podem ter restrições especiais - como um valor de retorno padrão. Você pode definir isso usando uma ação interna ou criar sua própria ação a partir de uma macro na família Ação*.
Você pode usar o SPEC_SET em seu objeto simulado para definir os atributos no objeto Spec (como os de funções ou métodos que estão sendo ridicularizados) como os atributos correspondentes em sua simulação. Isso é especialmente útil se você deseja criar uma simulação usando outro objeto como suas especificações.
As especificações são uma parte importante do TDD. Você pode usá -los para tornar seus testes mais confiáveis e fáceis de entender.
A especificação para um método ou função será verificada para garantir que seja chamado com a assinatura correta quando você usar um GMOCK. Se não for, você aumentará um atributoError.
Isso pode ser útil quando um método ou função tem vários argumentos, porque permite especificar quais devem ser usados quando o método for chamado. Você pode comparar os valores resultantes para garantir que suas expectativas sejam atendidas.
Os args para cada chamada são registrados em uma lista de tuplas de argumentos de palavras posicionais e de palavras-chave, ou uma tupla de nome, argumentos posicionais e de palavras-chave, dependendo de como as chamadas foram construídas. Estes podem ser introspectados e comparados aos valores em call_args_list ou method_calls.