【问题标题】:Using Pex and Moles for kind of non-PUT testing使用 Pex 和 Moles 进行非 PUT 测试
【发布时间】:2026-01-09 04:30:01
【问题描述】:

我想使用 .NET 4 测试一些不是针对 TDD 或任何其他形式的自动化测试编写的代码。

VS2010 中的集成单元测试不足以实现我的目标,因此我查看了 Pex & Moles。

我拥有的是一个用于表示远程设备上的视频文件的代码。通过特定的 SDK 处理对设备的访问,并为该 SDK 编写包装器。使用 Moles,我可以覆盖包装函数并将它们替换为从本地文件读取数据的函数。我使用 Moles 和集成单元测试来做到这一点。然而,这还不够,因为我只能以这种方式模仿“始终工作”的设备,而实际上,它们确实经常失败。

我曾考虑将 PexChoose 添加到虚假方法的主体中,以便它们按应有的方式工作或失败,以便 Pex 构建一个包含各种方法执行结果的可能组合的树。

但是,如果我尝试从现有代码创建 Pex 测试,从测试中删除所有参数(我不需要它们,一切都安排在里面),添加模拟方法并尝试运行 Pex 探索,结果在“超出路径范围”消息中。我试过设置非常高的界限,但没有帮助。我该怎么做才能解决这个问题?

我对 Moles、Pex 和一般的单元测试非常陌生,所以我可能在概念上是错误的。提前致谢。

【问题讨论】:

    标签: .net mocking moles pex


    【解决方案1】:

    如果您尝试测试您的应用程序如何响应 SDK 中发生的故障(由于磁盘或其他原因),那么没有任何东西可以阻止您在委托中引发异常。

    【讨论】:

      【解决方案2】:

      为我工作。 以下是pex探索结果:http://xmages.net/storage/10/1/0/c/e/upload/c6c9ced6.png

      【讨论】: