я пытался выполнить проверку последующие звонки, и я обнаружил, что MOQ поддерживает метод InSequence() для этого, как:Могу ли я использовать InSequence от moq с помощью MockBehavior.Loose?
MockSequence s = new MockSequence();
validator.InSequence(s).Setup(m => m.IsValid(It.IsAny<Frame>())).Returns(true);
encryptor.InSequence(s).Setup(m=>m.Encrypt(It.IsAny<Frame>()));
socket.InSequence(s).Setup(m => m.Send(It.IsAny<Frame>()));
compressor.InSequence(s).Setup(m => m.Compress(It.IsAny<Frame>()));
Однако, это, кажется, работает только тогда, когда я указываю ложное поведение как «строгий» , что запрещает мне называть дополнительные mehods на насмешливых объектов. Однако я хотел бы иметь возможность вызывать другие методы для этих объектов, я просто хочу, чтобы эти вызовы выполнялись последовательно.
Есть ли какой-либо «поддерживаемый» способ для этого (вместо того, чтобы прибегать к .Callback() и реализации вручную)? Я нашел дополнительную библиотеку с именем moq.sequence, однако предварительно скомпилированная версия не работает с последним Moq.
Вы отправили все это на сайт ** Moq's Issues **? Вы должны были исследовать предмет, поэтому я предполагаю, что это не было объяснено в документации, и они могут не знать об этой проблеме. Я могу заверить вас, что они изучают вопросы/предложения, размещенные там. Это занимает некоторое время, но они это делают. Я сам послал несколько полезных исправлений (насмешливые делегаты, Count-звонки и т. Д.). Если вы не хотите вмешиваться, я могу дважды проверить проблему и зарегистрировать ее там, но я думаю, что, поскольку вы уже знаете подробности, вы бы описали ее намного лучше :) [btw. sorki, nie chciałem polskim mieszać na SO :)] – quetzalcoatl
Hi, quetzalcoatl. Я не знал, что Moq фактически поддерживается, для Moq есть как минимум два или три репозитория исходного кода. Это текущий: https://github.com/Moq/moq4? У меня будет несколько дней каникул до Рождества и до нового года, так что, возможно, я попытаюсь что-то собрать или по крайней мере расследовать дальше. –
Да, действительно, текущий - это тот, что на GitHub. Ранее Moq размещался на code.google, но недавно они перешли в GitHub. Список выпусков, рассмотренных в GitHub, является самым последним, и о нем следует сообщать о новых проблемах. Сайт на code.google все еще существует и не удаляется/удаляется/и т. Д. Из-за количества «старых» проблем и запросов функций.Они не были переведены в GitHub, IIRC, так как не было никакого способа импортировать их, и никто не хотел копировать их вручную! Они по-прежнему считаются, но я думаю, что проблемы от GitHub имеют естественный «приоритет» по сравнению с старым кодом code.google. – quetzalcoatl