相关疑难解决方法(0)

喜欢构成而不是继承?

为什么喜欢构图而不是继承呢?每种方法都有哪些权衡取舍?什么时候应该选择继承而不是作文?

language-agnostic oop inheritance composition aggregation

1538
推荐指数
23
解决办法
29万
查看次数

如何模拟OracleConnection和OracleCommand?

对于我的测试,我需要模拟数据客户端,在我的情况下,他们是Oracle.

我创建了我的数据访问层以允许传入:

public static Int32? GetUserRoleId(string userName, OracleConnection cn, OracleCommand cmd)
Run Code Online (Sandbox Code Playgroud)

我正在使用Moq,虽然我可以根据需要切换到另一个框架,当我去创建像这样的Mock对象时:

Mock<OracleConnection> mockOracleConnection = new Mock<OracleConnection>();
Mock<OracleCommand> mockOracleCommand = new Mock<OracleCommand>();
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

失败:System.ArgumentException:类型为mock必须是接口或抽象或非密封类.

结论: 这比我想象的更简单!只需像这样模拟DAL层函数:

mockDao.Setup(a => a.GetUserRoleId(userName, It.IsAny<OracleConnection>(), It.IsAny<OracleCommand>())).Returns(1);
Run Code Online (Sandbox Code Playgroud)

c# oracle unit-testing moq

7
推荐指数
1
解决办法
2946
查看次数