Moq и параметры, которые вы передаете - PullRequest
3 голосов
/ 04 июня 2010

Я создаю объект MOQ

передать это моему классу

позвоните и передайте объект.

Как я могу получить доступ к этому объекту, чтобы увидеть, установлены ли правильные свойства?

Ответы [ 3 ]

2 голосов
/ 06 июня 2010

Если я правильно читаю ваш вопрос, у вас, похоже, такая ситуация?

public void DoTheCalculation(ICalculator calculator) {
   calculator.Calculate(this /* Or any other object */);
}

В этом случае вы можете утверждать аргументы, передаваемые интерфейсу Mocked, используя метод It.Is, который принимает предикат:

[TestMethod]
public void DoTheCalculation_DoesWhateverItShouldDo() {
     Mock<ICalculator> calcMock = new Mock<ICalculator>();
     CalculationParameters params = new CalculationParmeters(1, 2);
     params.DoTheCalculation(calcMock.Object);

     calcMock.Verify(c => c.Calculate(It.Is<CalculationParameters>(
                         c => c.LeftHandSide == 1 
                              && c.RightHandSide == 2));

}
1 голос
/ 04 июня 2010

Ваш вопрос несколько сбивает с толку, неясно, на какой объект вы ссылаетесь в последнем предложении.

Тем не менее, каждая оболочка Moq имеет свойство «Объект» того типа, над которым вы издеваетесь. Вы можете получить к нему доступ, просто просмотрев это свойство.

var myMock = new Mock<MyObj>();

var myProp = myMock.Object.MyProperty;
1 голос
/ 04 июня 2010

Для этого вы используете метод .VerifySet() для фиктивного объекта.Например,

mockObject.VerifySet(o => o.Name = "NameSetInMyClass");

Если он не был установлен правильно, возникнет исключение.

Подробнее о здесь можно прочитать здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...