Я смотрел документацию Moq, и комментарии слишком короткие для меня, чтобы понять каждую из вещей, которые он может сделать.
Первое, что я не получаю, это It.IsAny<string>(). //example using string
Есть ли преимущество использования этого, просто введя какое-то значение? Я знаю, что люди говорят, что используют это, если вы не заботитесь о ценности, но если вы не заботитесь о ценности, вы не можете просто "что-то" или что-то еще? Это просто похоже на набирание текста.
Во-вторых, когда было бы примером того, когда вы не будете заботиться о стоимости? Я думал, что Moq нуждается в ценности для соответствия материалам.
Я не понимаю, для чего вообще It.Is<>
или как его использовать. Я не понимаю пример и то, что он пытается показать.
Далее, мне не удается использовать Times
(и его методы AtMost
и т.д.). Почему вы ограничиваете количество раз, когда что-то настраивается? У меня есть значение AppConfig
, которое мне нужно использовать дважды. Почему я хочу ограничить его, скажем, один раз? Это просто сделало бы тест неудачным. Это значит, чтобы другие люди не добавляли еще один код в код или что-то еще?
Я не понимаю, как использовать mock.SetupAllProperties();
Что он задает с помощью?
Я также не понимаю, почему существует так много разных способов настройки свойства и каковы их отличия. В документации есть:
SetupGet(of property)
SetupGet<TProperty>
Я заметил, что много вещей в Moq показывает ()
и <>
- какая разница между ними и чем они будут выглядеть при использовании?
Я также не понимаю, почему они имеют SetupGet
. Не могли бы вы использовать SetupSet
для установки свойства?
SetupSet
имеет пять различных способов использования в документации. Плюс еще один, называемый SetupProperty
. Поэтому я не понимаю, почему их так много.
На стороне примечания, мне интересно, не являются ли переменные, используемые в лямбдах, независимыми от других лямбда. Например:.
mock.setup(m => m.Test);
stop.setup(m => m.Test);
Будет ли это нормально или будет какой-то конфликт между переменной m
?
Наконец, я был смотрел это видео, и мне интересно, показывает ли он Visual Studio. Его Intellisense выглядит по-другому. Для него появляется лампочка (я счастлив, что у меня нет, так как она возвращает болезненные воспоминания о неберах), и есть линии, идущие от одной открытой скобки до закрывающей скобки и т.д.
Спасибо:)