2
我想要更加熟悉Rhinomocks框架,並且我正在嘗試瞭解rhinomocks的期望方法。rhinomocks設置期望,單元測試總是通過
這裏是我寫一個單元測試:
[TestMethod]
public void Create_ValidModelData_CreatesNewEventObjectWithGivenSlugId()
{
//Arrange
var eventList = new List<Event>() { new Event() { Slug = "test-user" } };
_stubbedEventRepository.Stub(x => x.GetEvents())
.Return(eventList);
_stubbedEventRepository
.Expect(x => x.SaveEvent(eventList.SingleOrDefault()))
.Repeat
.Once();
var controller = new EventController(_stubbedEventRepository);
EventViewModel model = new EventViewModel();
//Act
//controller.Create(model); COMMENTED OUT
//Assert
_stubbedEventRepository.VerifyAllExpectations();
}
我想我明白這個代碼,如果SaveEvent(...)GET方法的調用一次只能通過。然而,用controller.Create(model)註釋掉,測試仍然通過。 Inside controller.Create(model)是SaveEvent()方法被調用的地方。
我試過如下:
_stubbedEventRepository
.Expect(x => x.SaveEvent(eventList.SingleOrDefault()));
但它仍然通過每一次,所以我在做什麼不正確的堆棧溢出?我在網上看到的消息來源無法幫助我。爲什麼VerifyAllExpectations()產生一個成功的單元測試? 謝謝!
這裏的控制器構造函數體:
public EventController(IEventRepository eventRepository)
{
_eventRepository = eventRepository;
}
編輯:
// member variables
private IEventRepository _stubbedEventRepository;
[TestInitialize]
public void SetupTests()
{
_stubbedEventRepository = MockRepository.GenerateStub<IEventRepository>();
}
你是如何創建'_stubbedEventRepository'?你應該使用'MockRepository.GenerateMock()'。 –
vcsjones
2012-01-05 18:53:35
已更新帖子以顯示我正在使用的內容,我使用的是不正確的GenerateStub,因爲我在stubbedRepository上聲明 – Short 2012-01-05 19:04:07