Domanda

Ho una firma per un metodo che assomiglia a questo: IEnumerable BuildCustomerUpdateplan privato (elenca LocalCacheChangedCustomer, elenco CrmChangedCustomer) {}

Quando guardo l'oggetto malizzato, la sintassi (intellisense) di come chiamare il metodo e test è assolutamente confuso per me e ogni volta che gli faccio un colpo, ricevo errori di compilation. Ho esaminato i tutorial di base forniti sul sito di MSFT, ma semplicemente non capisco come testare un metodo privato usando le talpe o come gestire il tipo di ritorno e più parametri.

Sfortunatamente non sono stato in grado di trovare altri buoni Howto o thread che dimostrano un campione più complesso che lavorare con un semplice metodo Add () che sputa un INT e accetta un int. :(

Consigli?

È stato utile?

Soluzione

Nel tuo progetto di test, prima assicurati di aggiungere un gruppo moli corrispondente al test del gruppo. Ti consigliamo anche di aggiungere un using Dichiarazione dell'Assembly-under-test con .Moles Aggiunto in modo da poter utilizzare l'assemblaggio a morso.

Le moli cambia i nomi delle classi e dei metodi nella forma M[Original Class Name].[Original Method Name][typeof param1][typeof param2].... Nel tuo caso potrebbe apparire una deviazione per quel metodo MClass.BuildCustomerUpdatePlanListList = (List x, List y) => { [code]};. Che definisce un metodo anonimo che ne prende due ListS come parametri e inserirai qualsiasi codice desiderato nella funzione. Assicurati solo di restituire un IEnumerable Con quel metodo anonimo.

Ecco un esempio usando le talpe per deviare Directory.GetFiles:

using System.IO.Moles;
[assembly: MoledType(typeof(System.IO.Directory))]
...
    MDirectory.GetFilesStringString = (string x, string y) => new string[0];

Dal Directory La classe è membro di System.IO Io uso using System.IO.Moles; Per specificare che voglio usare i membri molenati dell'assemblea.

Le talpe richiedono di specificare i tipi moliti: [assembly: MoledType(typeof(System.IO.Directory))] fa il lavoro.

Infine, Directory.GetFiles Prende due stringhe come parametri e restituisce un array di stringhe. Per deviare il metodo per restituire l'equivalente di nessun file trovato, il metodo morso ritorna new string[0]. Le parentesi graffe sono necessarie se si desidera più righe nel metodo anonimo e, se non deviazione di un metodo vuoto, un'istruzione di ritorno che corrisponde al tipo di restituzione del metodo originale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top