Quindi ho una classe di fabbrica e sto cercando di capire cosa dovrebbero fare i test unitari. Da questo question ho potuto verificare che l'interfaccia restituita sia di un particolare tipo concreto che mi aspetterei.Metodi di fabbrica di test unitari che hanno una classe concreta come tipo di ritorno
Che cosa devo verificare se la fabbrica restituisce tipi concreti (perché non è necessario - al momento - per le interfacce da utilizzare)? Attualmente sto facendo qualcosa di simile al seguente:
[Test]
public void CreateSomeClassWithDependencies()
{
// m_factory is instantiated in the SetUp method
var someClass = m_factory.CreateSomeClassWithDependencies();
Assert.IsNotNull(someClass);
}
Il problema di questo è che l'Assert.IsNotNull
sembra un po 'ridondante.
Inoltre, il mio metodo factory potrebbe essere l'impostazione dei dipendenze di quella particolare classe in questo modo:
public SomeClass CreateSomeClassWithDependencies()
{
return new SomeClass(CreateADependency(), CreateAnotherDependency(),
CreateAThirdDependency());
}
e voglio fare in modo che il mio metodo factory imposta tutte queste dipendenze correttamente. Non c'è altro modo per fare questo per rendere quelle proprietà di dipendenze public/internal
che poi controllo nel test dell'unità? (Non sono un grande fan di modificare i soggetti del test per adattarli ai test)
Modifica: in risposta alla domanda di Robert Harvey, sto usando NUnit come framework di test delle unità (ma non avrei pensato che farebbe troppa differenza)
Quale framework di test stai usando? –
Alcuni framework di test richiedono che le classi siano virtuali in modo che il framework di testing possa ereditarle. Alcuni no. Differenza enorme. –