Как издеваться над этой концепцией - PullRequest
0 голосов
/ 21 сентября 2011
class Test : ITest
{
   public string MyValue { get; }
   public string Detail {get; set;}
}

Я хочу смоделировать метод MyValue таким образом

Test myTest = new Test() { Detail = "My Test" };
MockRepository repositoryTest = new MockRepository(MockBehavior.Default);
Mock<Test> mockTest = repositoryTest.Create(myTest);

mockTest.Setup(t => t.MyValue).Returns("Some text");
return myTest;

NB этот код не работает, только для понимания того, что я хочу.

Другой способ, как можноЯ издеваюсь над экземпляром существующего объекта?Я использую Google Moq.

1 Ответ

0 голосов
/ 21 сентября 2011

Вероятно, вы должны насмехаться над интерфейсом, а не над классом реализации.

Используйте Mock<T>.Get(T) для получения Mock<T> от вашего T:

ITest test = new Mock<ITest>().Object;
Mock<ITest> mockTest = Mock<ITest>.Get(test);

РЕДАКТИРОВАТЬ: Вы можете заглушить свойства, используя пространство имен Moq.Stub.Посмотрите на эту страницу: http://blog.theagileworkshop.com/2009/03/24/stubs-in-moq/

...