用moq或rhino mock或其他东西模拟out参数

时间:2009-12-10 13:55:10

标签: unit-testing parameters mocking

我尝试使用NMock2但是在尝试将模拟传递给构造函数时我得到TypeLoadExceptions,我也看到TypeMock可以做到这一点,但它花费80美元

2 个答案:

答案 0 :(得分:7)

我发现自己,你可以用Moq实际做到这一点,就像这样:

var info = new Info { stuff = 1 };

textReader.Setup(o => o.Read<CandidateCsv>("", out info));

就是这样:))

答案 1 :(得分:3)

Moq does not支持模拟out / ref参数,但你可以使用OutRef使用Rhino Mocks,它接受方法中每个out / ref参数的一个参数。

MockRepository mockRepository = new MockRepository();

// IService.Execute(out int result);
var mock = mockRepository.CreateStub<IService>();

int mockResult; // Still needed in order for Execute to compile

mock.Setup(x => x.Execute(out mockResult)).OutRef(5);
mock.Replay();

int result;

mock.Execute(out result);

Assert.AreEqual(5, result);