Múltiplas declarações em um teste de unidade [duplicado]

Esta pergunta já tem uma resposta aqui:

É uma prática ruim ter mais de uma afirmação em um teste de unidade? [fechadas 9 respostas

Acabei de ler "The Art of Unit Testing", de Roy Osherove, e estou tentando aderir às melhores práticas que ele expõe no livro. Uma dessas práticas recomendadas é não usar várias declarações em um método de teste. A razão para esta regra é bastante clara para mim, mas me faz pensar ...

Se eu tiver um método como:

public Foo MakeFoo(int x, int y, int z)
{
     Foo f = new Foo();
     f.X = x;
     f.Y = y;
     f.Z = z;

     return f;
}

Devo realmente escrever testes de unidade individuais para afirmar que cada propriedade separada do Foo é inicializada com o valor fornecido? É realmente muito incomum usar várias declarações em um método de teste?

FYI: Estou usando o MSTest.

EDIT: Obrigado por todas as respostas. Acho que vou terminar com as várias afirmações. Na minha situação, o comportamento que está sendo testado é que o MakeFoo produz um Foo adequado. Portanto, afirmar que cada propriedade está obtendo o valor esperado deve ser suficiente. No entanto, se houvesse uma condição para definir uma das propriedades, testaria cada um dos resultados individuais separadament

Eu ainda não gosto disso ... O motivo pelo qual eu gosto da ideia de ter uma afirmação por teste é que você sabe exatamente o motivo pelo qual um teste falhou. Se você corrigir o problema, o teste será aprovado. Com várias afirmações, você não tem a mesma garantia. Se você corrigir o problema mencionado pela afirmação com falha, não há nada para impedir que outra afirmação posteriormente no teste falhe a seguir. Se as declarações fossem divididas, você saberia sobre as duas falhas desde o iníci

E finalmente, a razão pela qual não estou usando apenas .Equals () é porque, na minha situação, Foo é uma entidade LINQ-To-SQL que apresenta algumas complicações que não valem a pena entrar aqui.

Agradeço mais uma vez

questionAnswers(7)

yourAnswerToTheQuestion