我编写了一个应用程序,它与至少一个第三方资源(在我的情况下,它是一个网站,并且有许多网站需要进行测试)与我无法控制。部分交互需要使用真实用户凭据登录并与瞬态数据进行交互。
因此,我有以下问题:
这产生了以下问题:
我正在使用Microsoft的单元测试框架和.Net 4。
答案 0 :(得分:2)
在编写自动化测试之前,我遇到了这类常见问题。一般而言,它们取决于非托管资源。该资源可以是SOAP服务,网络,也可以是网站。
我的一般方法是让测试可以在两种模式下运行。
非管理模式
我想在测试期间利用真实资源,这可以确保代码实际上与实际资源一起使用。当您需要扩展新资源的代码或更改资源结构时,这也很有用。
管理模式
我想捕获瞬态数据并将其用作模拟非托管资源的夹具。这确保了代码仍然可以针对特定的现实世界示例(尽管是静态的),并且它为我提供了使用托管(模拟)资源获得的细粒度控制。如果有问题的资源在一段时间内不可用,或者通常只是不可用(即从构建服务器运行),我也可以运行此测试。
答案 1 :(得分:1)
这不是您问题的确切解决方案,但您是否考虑过针对模拟网站进行测试?即编写您自己的“网站”,作为测试框架的一部分存在,并以可预测和一致的方式运行。它所需要做的只是响应一小组请求。
使用这种方法,您仍然可以证明您的代码按预期工作(并且不会回退等),您可以清楚地将代码与来自代码的回归来源不可预知的第三方内容,你消除了隐私问题。