【发布时间】:2011-04-13 07:21:49
【问题描述】:
对于我的测试,我需要模拟数据客户端,在我的例子中它们是 Oracle。
我已经创建了我的数据访问层以允许传入:
public static Int32? GetUserRoleId(string userName, OracleConnection cn, OracleCommand cmd)
我正在使用 Moq,但如果需要,我可以切换到另一个框架,当我去创建 Mock 对象时,如下所示:
Mock<OracleConnection> mockOracleConnection = new Mock<OracleConnection>();
Mock<OracleCommand> mockOracleCommand = new Mock<OracleCommand>();
我得到这个错误:
失败:System.ArgumentException:要模拟的类型必须是接口或抽象或非密封类。
结论: 这比我想象的要简单!像这样模拟 DAL 层函数:
mockDao.Setup(a => a.GetUserRoleId(userName, It.IsAny<OracleConnection>(), It.IsAny<OracleCommand>())).Returns(1);
【问题讨论】:
标签: c# oracle unit-testing moq