我刚刚开始使用 Pex 为我的项目生成参数化单元测试。但是,当我让 Pex 运行其探索时,我的代码崩溃了,因为它无法从 web.config 中读取(更准确地说,ConfigurationSettings.AppSettings 有零个元素)。探索期间的工作目录是:“C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE”。我认为这是根本原因。
我知道处理这个问题的正确方法是创建与我需要的值相对应的模拟对象。然而,这将迫使我创建大量的模拟代码,并且不会提供任何有形的值(value),恕我直言,因为我将 web.config 与测试项目捆绑在一起没有问题。
如何在 Pex 探索执行时启用从 web.config(或 app.config)读取?
最佳答案
恐怕你已经回答了你自己的问题 - 你不会直接从你的代码访问你的数据库,那么为什么要使用你的配置文件呢?只需在配置文件设置周围放置一个薄包装,然后在测试中将其 stub 即可。您不必一次性完成所有工作,从正在测试的代码段开始,然后一点一点地将直接引用移到包装器后面。这样做的实际好处是它使测试变得容易。
此外,使用 Pex,如果您的代码在每次运行之间被完全拆除(取决于您的代码和测试是否确实如此),您每次都会访问文件系统,这将产生严重的问题对性能的影响。
关于visual-studio - 运行 Pex 探索时从 web.config 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1618706/