Scrivo test di integrazione per la mia applicazione e uso il mio contenitore per questo. Voglio essere in grado di registrare tutti i componenti come faccio in tempo reale, quindi sovrascrivere alcuni componenti e cambiarli per utilizzare le implementazioni degli stub.Sovrascrivi registrazione Autofac - Test di integrazione con DI
Non vorrei separare il DI e avere un contenitore per i test solo perché voglio testare la cosa reale.
Facendo questo sembra anche brutto:
public class MyRegistrations
{
public static RegisterAll(bool isInTest= false)
{
if (isTest)
{
// Register test fakes
}
else
// Register real components
}
}
così ho pensato di rilevante registrazioni nel mio enviorment test. Come dovrebbe essere fatto?
Altri modi migliori per raggiungere il mio obiettivo?
Grazie
Posso chiedere perché si desidera simulare i componenti come parte del test di integrazione? Non state cercando funzionalità end-to-end della vostra applicazione che non otterrete con un componente falso? Anche se ciò significa scrivere su un'istanza di database effettiva o su un endpoint WCF ecc. –
@StephenRoss Ci sono casi in cui è molto difficile simulare una situazione specifica in un test di integrazione, ma si desidera testarlo come parte dell'integrazione test; Ad esempio l'agente C & C che avvisa quando il disco è pieno sul server C & C. –
@OldFox Se questo fosse un test di integrazione eseguito sulla mia applicazione, vorrei comunque caricare il disco al massimo. Tu (dovresti) stai già testando in un'unità test che l'interazione sia gestita correttamente, ma ora stai verificando che tutto funzioni correttamente end-to-end (correttamente integrato). Se questo significa scrivere 10 GB di dati vuoti sul disco per un test, così sia, altrimenti come potremmo sapere che stiamo gestendo l'evento (mi aspetto) correttamente e al momento giusto, ecc. –