2011-01-17 6 views
0

ich bin spöttisch diese Schnittstelle und ich kann nicht einen Standardwert für die EigenschaftEigenschaft ist immer null, selbst nachdem die Eigenschaft in moq Einrichtung

var moqObj = new Mock<IObjectTest>(); 
moqObj.Setup(mo => mo.Pages).Returns(2); 

var engineMgr = new EngineMgr(moqObj.Object); 

der Code erkennen kann, nicht zu bieten scheinen, dass ich setze diese Eigenschaft "Pages" in 2. help!

+0

Ihr Code sieht für mich in Ordnung; Sie könnten eine kleine Klasse schreiben, die 'IObjectTest' selbst implementiert und sieht, ob der' EngineMgr' die Eigenschaft korrekt aufnimmt, um zu überprüfen, ob der Fehler tatsächlich in der Mock-Klasse liegt. –

+0

i isoliert den Test, wenn ich moqObj.Object.Pages Behaupten, es den richtigen Wert zurückgibt. aber wenn ich es innerhalb der Klasse verwende, gibt es 0 zurück. –

+0

kann jemand anderes helfen? –

Antwort

1

Wenn Pages ist eine Eigenschaft, die Sie benötigen SetupGet verwenden:

moqObj.SetupGet(mo => mo.Pages).Returns(2); 
+0

Ich habe das auch versucht .. funktioniert immer noch nicht. es ist nur eine einfache Eigenschaft. Muss ich etwas in dieser Eigenschaft tun, damit es funktioniert? –

-1

das Problem gefunden! Ich habe die Klasse versehentlich von innen neu initiiert. wie dumm von mir.

+2

Sie sollten dies als einen Kommentar zu Ihrer Frage setzen, anstatt eine andere Antwort hinzuzufügen :) –

Verwandte Themen