2012-01-04 20 views
5

Dopo aver letto cose positive su Moles, vorrei aggiungere un framework di isolamento al nostro set di strumenti per scrivere test di unità.Quadro di isolamento per test per Mono

La nostra applicazione gira su Mono poiché è distribuita su Linux e Windows e non riesco a trovare un framework che supporti Mono.

Ho visto alcuni articoli sulla manipolazione di assiemi usando Cecil ma sto cercando di trovare qualcosa che potremmo realisticamente utilizzare.

risposta

4

Sembra che Moles funzioni utilizzando il JIT, quindi mi aspetto che sia molto legato all'implementazione di Microsoft.

Ho avuto un notevole successo utilizzando Moq su mono, con una quantità minima di sforzo è possibile creare un'istanza proxy di quasi tutte le classi e intercettare quasi tutte le chiamate di metodo. Il latest binary version di Moq funziona molto bene su mono per me.

using Moq; 

var mock = new Mock<MyClass> { CallBase = true }; 
mock.Setup(x => x.MyMethod()).Returns (1); 

Dopo aver utilizzato Moq alle cose di impostazione Io generalmente preferisco usare NUnit, ma è possibile utilizzare qualsiasi altro framework di test.

+0

Grazie per l'input, Ian. Sì, non ho nemmeno provato a guardare Moles in esecuzione con Mono poiché presumo che fallirà. Stiamo già utilizzando Moq, che ritengo sia fantastico, ma sto cercando strumenti che mi permettano di far fronte a problemi di tipo DateTime.Now. Sono pienamente consapevole di poter avvolgere i metodi statici dietro i metodi di istanza nelle classi proxy, ma non sono sicuro che sia la soluzione più elegante in tutti gli scenari. – sebjsmith

+0

Ohh, intercettazione metodo statico .. che è difficile – IanNorton

+0

Hai guardato con PostSharp per aggiungere pre/post hook ai tuoi metodi? – IanNorton

0

TypeMock è molto probabilmente la tua unica scelta quando aggiungi i tuoi commenti sulla risposta di @IanNorton.

+1

Non credo che TypeMock supporti Mono. – sebjsmith

+0

Se TypeMock non funziona su Mono, probabilmente non hai assolutamente altra scelta rispetto alle classi proxy. –

Problemi correlati