我在Rhinomocks中設置屬性值時遇到問題。我需要在被測方法外設置屬性的初始值,然後有條件地在被測方法內設置它的值。有些代碼:如何在C#和Rhinomocks中設置模擬屬性?
public interface IResponse
{
string ResponseText { get; set; }
}
public void ProcessResponse(IResponse response)
{
if(response.ResponseText == "Unset")
{
response.ResponseText = someService.GetResponse();//someService here is irrelvant to the question
}
}
[TestMethod]
public void ResponseValueIsSetWhenConditionIsTrueTest()
{
var mock = Mock<IResponse>.GenerateMock();
mock.Stub(x => x.ResponseText).Returns("Unset");
Processor.ProcessResponse(mock);
Assert.AreEqual("Responseval", mock.ResponseText); //Fails because the method doesn't set the value of the property.
}
我需要模擬的屬性有一個初始值進入測試的法案的一部分,並允許被測方法更改該值,所以我可以在它以後斷言。但是mock.ResponseText
總是被設置爲「Unset」,並且該方法永遠不會改變它的值 - 這裏發生了什麼?
是什麼'PropertyBehavior()'做什麼呢? – MalcomTucker 2011-06-04 12:00:44
它告訴Rhino.Mocks模擬屬性的簡單屬性行爲,即您可以像「普通」對象的任何其他屬性一樣獲取和設置屬性值。 – Chaquotay 2011-06-04 13:04:23