#c# #testing #azure-devops #moq #func
#c# #тестирование #azure-devops #moq #функция
Вопрос:
var mock = new Mock<IMyClass>();
mock.SetupSequence(x => x.MyMethod()).Returns(0).Returns(1).Returns(2).
Func<IMyClass> func = () => mock.Object);
Я пытался имитировать объект при Func<mock.Object>
использовании SetupSequence
, Queue
или Callback
.
В дальнейших методах вызывается моя функция, а затем выполняется мой метод интерфейса. Он работает локально хорошо, однако AzureDevops, похоже, принимает только последние возвраты (2). Azure devops не обрабатывает его как последовательность. В моей программе есть цикл, и мне нужно несколько результатов. Из-за этой проблемы утверждение не работает. Azure devops, похоже, не распознает метод mock. У меня есть много рабочих тестов, основанных на moq, но этот такой сложный.
Пожалуйста, помогите.
Комментарии:
1. Можете ли вы предоставить воспроизводимый пример (остальную часть теста) и любую другую информацию из devops (при условии, что это просто сбой, но трассировка стека может иметь подсказку)
2. @rgvlee Я проверил журналы, они не имеют смысла. В журналах записано, что утверждение является ложным. Я добавляю список, и в нем должно быть 3 элемента, но есть только один. Мне было бы сложно привести реальный пример. Сейчас для меня это большой блокиратор, я могу согласиться на любые обходные пути. Я изменил утверждение, чтобы проверить вызов myMethod. Это было проверено только с помощью moq, но должно быть 3 раза. Azure Devops не видит возвратов (0) и возвратов (1)