Я пытаюсь высмеять метод дозвукового SimpleRepository с помощью Roxino mocks, я использую интерфейс IRepository, но я новичок в насмешке и не знаю, как идти оттуда, это можно сделать? Спасибо за вашу помощь.Как насмехаться Добавить метод дозвукового SimpleRepository
2
A
ответ
1
Это зависит от того, что вы хотите проверить. Вас беспокоит, вызван ли метод Add(), или вы просто хотите настроить консервированный ответ, который может или не может быть вызван?
Если вы ожидаете звонка: -
var mocks = new MockRepository();
var repo = mocks.StrictMock<IRepository>():
var myObj = CreateSampleObject();
using(mocks.Record())
{
Expect.Call(repo.Add(myObj)).Return(myObj);
}
using(mocks.Playback())
{
var target = CreateTarget(repo);
target.DoSomething(myObj);
}
Если вы не заботитесь ли это называется или нет, а затем использовать SetUpResult вместо Ожидать, например,
SetUpResult.For(rep.Add(myObj)).Return(myObj);
2
AdamRalph правильно, но я предпочитаю AAA синтаксис Rhino иронизирует:
// arrange
var repo = MockRepository.GenerateStub<IRepository>();
var myObject = CreateSampleObject();
repo.Stub(r => r.Add(myObj)).Return(myObj);
// act (this assumes that the call to "SomeMethod" on "SomeClass"
// returns the result of the IRepository.Add).
var someClass = new SomeClass(repo);
var result = someClass.SomeMethod();
// assert
Assert.AreSame(myObject, result);