![]() |
1
1
您真的想要模拟从WebService返回到将要使用结果的代码的结果。在上面的示例代码中,您似乎在模拟MDocument,但您确实希望传递一个从Web服务的模拟实例返回的MDocument实例,并断言从geoLocationFetcher返回的locationBean与“location”be an的值匹配。 |
![]() |
2
2
我认为这里真正的问题是,您有一个单例调用并创建Web服务,因此很难插入模拟服务。 您可能需要添加(可能是包级别)对singleton类的访问。例如,如果构造函数看起来像
您可以使构造函数包级别,并只使用模拟的Web服务创建一个。 或者,您可以通过添加setter方法来设置WebService,尽管我不喜欢可变的singleton。同样,在这种情况下,您必须记住稍后取消设置WebService。 如果WebService是在方法中创建的,则可能需要使geolocationFactory可扩展以替换模拟服务。 您也可以研究删除单例本身。网上有一些文章,也许这里有关于如何做到这一点的文章。 |
![]() |
3
1
最简单的选择是模拟WebService客户机,
您可以修改代码以从文件系统中读取响应XML。 示例代码可在此处找到: Mocking .NET WebServices with Mockito |
|
wavesinaroom · 断言结构向量长度 6 月前 |
![]() |
Tim Kirkwood · 比较空数据帧 7 月前 |
![]() |
Kamran Khan · 使用单元测试ASP。NET核心 11 月前 |
![]() |
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 1 年前 |
![]() |
Ricky Mo · 角度测试如何模拟导入的const 1 年前 |
![]() |
Natty · Visual Studio中缺少“代码覆盖率结果” 1 年前 |