2010-07-16 16 views
2

J'essaie actuellement de faire fonctionner un de mes tests unitaires, mais il y a une chose sur le chemin. J'ai une classe appelée AccountingScheduleLookup qui a un champ d'identification attaché à ce qui est en lecture seule. Quand j'essaye de simuler un appel à une méthode qui utilise ce champ d'identification, il me jette une belle NullReferenceException sur cette ligne de code particulière. Cela signifie que l'ID n'a pas été affecté ou que l'objet n'a pas été instancié.Aidez-moi à éviter cette NullReferenceException (en utilisant Rhino Mocks)

Quand j'ai mis dans une instanciation de base, cependant, il m'a encore jeté l'exception. Des idées pour contourner cela?

Voici un exemple de code (pour ce qu'il vaut la peine)

AccountingScheduleLookup = new AccountingSchedule { Description = "Will this work?" } 
var calendarPeriods = dal.GetObjects<AccountingScheduleDetail>(
    Where.Property("AccountingScheduleID").Is(AccountingScheduleLookup.AccountingScheduleID)); 
+8

Vous peut commencer par montrer le code que vous essayez de tester. De cette façon, vous augmenterez considérablement vos chances d'obtenir une réponse correcte. –

+0

plus de détails peut-être? – Grzenio

+1

Utilisez-vous Rhino.Mocks quelque part? Je ne le vois pas dans cet extrait de code. – PatrickSteele

Répondre

1

utilisation typique de simulacres de rhinocéros impliquerait la mise en place d'une attente que lorsque cette propriété est accessible, il retourne une certaine valeur.

Voici une référence rapide pour la dernière version de rhinocéros se moque:

http://www.ayende.com/wiki/GetFile.aspx?File=Rhino+Mocks+3.3+Quick+Reference.pdf

Voici la section qui concernera probablement vous:

Propriété accesseurs

Expect.Call(foo.Name).Return("Bob"); 
+0

La dernière version de Rhino Mocks est actuellement 3.6. 3.3 est sorti vers octobre 2007, tandis que 3.6 est sorti vers septembre 2009. –