【发布时间】:2009-10-06 16:10:04
【问题描述】:
我们在类 InitializerFactory 中有一个带有以下签名的 VB.net 函数:
Public Shared Function Create(ByRef ui As Object) As IModeInitializer
我正在尝试通过传入一个模拟的 ui(使用 Rhino Mocks)来测试这个功能:
MainForm ui = mocks.StrictMock<MainForm>();
IModeInitializer item = InitializerFactory.Create(ref ui);
当尝试将 ui 作为参数传递时,我收到以下错误:
- 最好的重载方法匹配 'InitializerFactory.Create(ref object)' 有一些无效参数
- 参数“1”:无法从“ref MainForm”转换为“ref object”
理想情况下,解决方案是在 UI(或其类 MainForm)上提取一个接口,但这无论如何都不可行 - 这是一个非常臃肿的类。
我也不能将 ui 声明为 Object,否则我不能模拟其中的方法,因为这些方法不属于 Object 类型。
我的问题是——我做错了什么?
【问题讨论】:
标签: c# unit-testing rhino-mocks parameters