Qualcuno ha usato uno stub nel codice di produzione?

3

Ho una situazione in cui alcune procedure restituiscono un oggetto (un po 'come un DTO) con una determinata interfaccia:

interface ISomeInterface
{
    string StringReadOnlyProperty { get; }
    int IntReadWriteProperty { get; set; }
}

(Nell'implementazione reale, ci sono più proprietà).

Esistono due luoghi diversi in cui vengono gestiti questi oggetti: un processo che genera nuove istanze e un altro processo che manipola le istanze esistenti. Internamente, queste due implementazioni sono molto diverse. La "nuova" istanza è solo uno stub e l'istanza "esistente" ha molta logica di tracciamento.

Quindi ho bisogno di avere questa implementazione "Stub" che fa il tifo per tutto il tempo. Stavo pensando a come Rhino Mocks può tranquillamente implementare le implementazioni di un'interfaccia senza dover generare una classe concreta. Qualcuno ha mai usato un meccanismo di "stub" come Rhino Mocks, ma nel loro codice di produzione piuttosto che nei loro test unitari? Sembra una cattiva pratica, a causa della dipendenza da un framework di test.

    
posta Scott Whitlock 21.04.2011 - 14:53
fonte

2 risposte

1

Sembra che lo stub sia solo una versione ridotta del modello principale, giusto?

Forse "BareBonesObject" contiene quanto basta per creare un'istanza e "FullObject" contiene tutto?

Niente di sbagliato in questo tipo di scenario.

L'utilizzo di RhinoMocks per salvarti dalla scrittura di "BareBonesObject" sembra un codice olfattivo e eccessivo. È molto difficile scrivere "BareBonesObject"?

    
risposta data 21.04.2011 - 15:17
fonte
1

I framework di simulazione sono generalmente utili se è necessario generare molti oggetti mock diversi per una grande quantità di scenari diversi da testare. In questo caso sembra che tu voglia solo avere una singola implementazione di stub in giro. Se lo implementi direttamente (con mock o funzionalità generate) in esso, puoi bypassare del tutto la struttura di derisione.

    
risposta data 21.04.2011 - 15:19
fonte

Leggi altre domande sui tag