Leilão teriam dois construtores, uma sobrecarga recebendo a modalidade e uma sem receber, definindo MaiorValor como avaliador nesse caso. Desse jeito evita precisar refatorar testes anteriores que não previam a existência de modalidade (que não muda a execução de teste).
public Leilao(string peca, IModalidadeAvaliacao avaliador)
{
Peca = peca;
_lances = new List<Lance>();
Estado = EstadoLeilao.LeilaoAntesDoPregao;
_avaliador = avaliador;
}
public Leilao(string peca)
{
Peca = peca;
_lances = new List<Lance>();
Estado = EstadoLeilao.LeilaoAntesDoPregao;
_avaliador = new MaiorValor();
}