Um objeto mock é um dublê de teste pré-programado com expectativas sobre quais chamadas ele deve receber, e falha o teste se essas expectativas não forem atendidas.
Como se diferencia
Um stub apenas retorna valores predefinidos; um mock adicionalmente faz asserções sobre a interação, verificando se o código sob teste o chamou corretamente.