Взгляните на NMock2 . Это продукт с открытым исходным кодом, позволяющий создавать «виртуальные» реализации для интерфейсов, поддерживающих насыщенное и глубокое взаимодействие.
Например, если ваш интерфейс WS называется IService
и имеет метод Data GetData()
, вы можете создать макет, который требует один раз вызвать метод и вернуть новый объект Data
:
var testService = mockery.NewMock<IService>();
Expect
.Once
.On(testService)
.Method("GetService")
.WithNoArguments()
.Will(
Return.Value(new Data());
В конце теста вызовите mockery.VerifyAllExpectationsHaveBeenMet()
, чтобы убедиться, что метод GetData
действительно был вызван.
P.S .: не путайте проект "NMock2" с "NMock RC2", который также называется "nmock2" в sourceforge. NMock2-the-project, похоже, заменил NMock.