1
59
MOQ能够在方法执行后运行一些代码。它被称为“回调”。 以这种方式修改代码,它将起作用:
但是,如果要求IDataReader不仅包含一行,而且包含多行,该怎么办?好吧,这是一个例子:
|
2
11
我只是想自己弄明白。不确定这是否是MOQ中的新功能,但似乎有一种比@monsignor的答案更简单的方法。
使用Moq
|
3
2
这不让你嘲笑
首先,在单独的项目中,像正常一样运行查询以生成一些测试数据并使用
在测试项目中添加
然后添加
这将创建一个数据读卡器,其作用与从SQL查询返回的数据读卡器相同,甚至支持返回的多个结果集。 |
4
1
在一些测试之后,问题是试图将一个循环的datareader.read()设置为true,然后将其设置为false。Rhino Mock有repeat.once()选项,但在moq中找不到类似的方法(这里我可能错了)。 测试这一点的主要原因是扩展方法将读卡器转换为相关的数据类型,因此在最后,我删除了while循环,只访问了在mock中设置的值。代码如下:
不是一个理想的解决方案,但它是有效的。如果有人知道,最好发表评论,谢谢。 |
5
0
灵感来源于@mikesigs answer和另一个问题: SetupSequence in Moq 我提出了以下扩展方法,可以为您工作:
使用示例:
|
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
Korr · 如何用Jest模拟组件测试中服务的功能 2 年前 |
Jordan Lee · 在另一个类中使用实例方法作为装饰器 6 年前 |
user2350138 · 为WireMock构建Java项目 6 年前 |
user8584384 · 单元测试不起作用,因为导入的文件作为输入 6 年前 |
Vino · 如何模拟Python类的对象? 6 年前 |
Enrico · .NET核心ASP。带有会话和测试的NET控制器 6 年前 |