Dato che il nome di un metodo potrebbe cambiare nel tempo, è una buona idea specificare il nome del metodo il cui valore di ritorno sto asserendo come parte del nome del metodo Test unitario? E il messaggio che verrà trasmesso al chiamante?
Ad esempio, ho un oggetto Foo
con un metodo Bar
. Vorrei dichiarare se Bar
restituisce true in alcune condizioni specifiche. Scrivo un tale Test unitario:
public void Bar_ReturnsTrue_Always()
{
// the logic of the method goes here
Assert.IsTrue(Foo.Bar(), "Return value of Bar was different then: true"
}
Mi sembra abbastanza brutto, perché il nome Bar
potrebbe cambiare in futuro, ad esempio a Blargh
. Se ciò accade, c'è la possibilità che lo sviluppatore si dimentichi di cambiare le informazioni rilevanti in uno o entrambi i punti in cui è necessario (nome del metodo e messaggio). D'altra parte, in che modo il chiamante dovrebbe sapere cosa viene testato se tali informazioni non sono pubblicamente presenti? Non riesco a pensare a una soluzione abbastanza buona per questo. Qualche idea?