Nos dois posts anteriores sobre testabilidade, os nossos códigos de teste estavam lidando com duas classes: Logger e uma implementação de ILogFile. Logger usava ILogFile para fazer o seu trabalho, portanto, passávamos sempre uma instância de ILogFile para a classe Logger antes de seguir com os testes. Mas, nesses casos, qual classe estávamos testando? Logger?ut ILogFile (as diversas implementações)? Ambas???
É importante que saibamos qual é a unidade de código que está sendo testada, ou, usando o termo em inglês, qual é o nosso SUT (System Under Test). Nos nossos exemplos, o nosso SUT era a classe Logger! As implementações de ILogFile eram apenas coadjuvantes, embora olhando o código elas pareçam ser as figuras principas do teste, já que a maior parte do nosso esforço está em configurá-las (seja criando fakes na mão ou usando um Mock Framework). Mas não importa. Logger ainda é o nosso objeto de teste aqui. Tudo o que fizemos com as implementações de ILogFile foi para fazer Logger feliz :) Pense nisso!
Happy testing!
