Используя Насмешки Носорога для насмешки параметр, который создается в рамках метода, который я тестирую

Попытка дразнить следующий метод:

bool IsLoginValid(LoginViewModel viewModel, out User user);

Попробованный это первоначально:

dependency<ILoginService>()
.Stub(serv =>
        serv.IsLoginValid(
            Arg<LoginViewModel>.Is.Equal(a_login_viewmodel),
            out Arg<User>.Is.Anything)
.Return(false);

Но, который перестал работать, как это параметр. Сделал немного поиска вокруг и изменил мой код как такой:

dependency<ILoginService>()
.Stub(serv => 
        serv.IsLoginValid(
            Arg<LoginViewModel>.Is.Equal(a_login_viewmodel), 
            out Arg<User>.Out(new User()).Dummy))
.Return(false);

Это также перестало работать. Мне нужен 'новый Пользователь ()', чтобы быть видом 'Чего-либо' аргумент. Поскольку я думаю, что это ожидает определенный экземпляр.

Какая-либо идея, как обойти это?Спасибо, ребята.

35
задан ctrlplusb 29 July 2010 в 17:14
поделиться

1 ответ

Попробуйте вариант "OutRef". Он принимает объект params [], который определяет результат для каждого выходного параметра. Поскольку у вас только один результат, вам нужен только один результат. Вот небольшой макет того, что я пробовал и который должен работать в вашей ситуации:

var foo = MockRepository.GenerateStub<IFoo>();
var viewModel = new LoginViewModel();
User temp;
foo.Stub(f => f.IsLoginValid(viewModel, out temp)).OutRef(new User()).Return(false);

User outparam;
Assert.IsFalse(foo.IsLoginValid(viewModel, out outparam));
47
ответ дан 27 November 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: