前天写了文章:
有webservice参与的系统的单元测试,最好使用mock object
如果某个mock对象,要求模拟 POST 这样的修改数据的操作,而不是简单的GET 这样的查询,该如何做呢?
我现在使用的办法,是 使用yaml文件来存储数据,达到简单的模仿 数据库的目的。
例如:
require 'yaml'
module YamlStoreStrategy
YAML_FILE_NAME = "spec/mock_attributes.yaml"
private
def update_yaml(hash)
content = YAML.load(File.open(YAML_FILE_NAME))
content[self.class.name] = hash
File.open(YAML_FILE_NAME, 'w') { |file| file.write(content.to_yaml)}
end
def result_hash_from_yaml
content = YAML.load(File.open(YAML_FILE_NAME))[self.class.name]
return content
end
end
require 'spec_helper'
class SomeMockResource
include YamlStoreStrategy
def run_private_methods_from_module
update_yaml("blablabla" => "foo")
result_hash_from_yaml
end
end
describe SomeMockResource do
before do
@some_mock_resource = SomeMockResource.new
end
it "should run the private methods from module" do
@some_mock_resource.run_private_methods_from_module
end
it "should update_yaml , then query from yaml" do
purpose = "test if the module works"
@some_mock_resource.send(:update_yaml,{"name"=>"some resource", "purpose"=> purpose})
@some_mock_resource.send(:result_hash_from_yaml)["purpose"].should == purpose
end
end
SomeMockResource:
那么,我们就可以在MockObject中引用这个 module:
require 'spec/support/yaml_store_strategy.rb'
class MockServerSettingResource < ServerSettingResource
include YamlStoreStrategy
def find(params)
return [result_hash_from_yaml.merge(params)]
end
def create(params)
updated_hash = result_hash_from_yaml.merge(params)
update_yaml(updated_hash)
return [updated_hash]
end
end
对该 Mock Object的测试:
require 'spec_helper'
describe MockServerSettingResource do
describe "create , then query" do
it "should create settings "do
key_name = "foo"
value = "value of the key: foo"
resource = MockServerSettingResource.new
resource.create({ :name => key_name, :value => value })
result = resource.find({:name => key_name})
result[:name].should == key_name
result[:value].should == value
end
end
end
分享到:
相关推荐
Web服务(WebService)是一种基于互联网的、平台独立的交互方式,允许不同的系统之间进行数据交换和功能调用。在本项目中,通过运行名为"webservicTest"的主程序,我们可以对WebService进行测试。这个压缩包包含了三...
Web Service是一种通过互联网交换业务逻辑的软件系统,通常使用SOAP(Simple Object Access Protocol)协议进行通信,并且基于WSDL(Web Services Description Language)定义其接口。在Java开发环境中,常常利用API...
本文详细介绍了如何使用SOAPUI工具对SAP Webservice进行测试的过程,包括新建项目、配置测试用例、执行测试及结果分析等步骤,并给出了高级测试技巧的建议。希望本文能帮助读者更好地理解和掌握SAP Webservice的测试...
总的来说,C# WebService调用测试工具是一个强大的开发辅助工具,它帮助开发者在C#环境中测试和优化Web Service接口,支持多种数据交换格式,确保了跨平台和跨系统的互操作性。通过这样的工具,开发人员能够快速有效...
总的来说,WebserviceStudio20是一个强大的Web服务测试工具,它简化了Web服务的测试流程,帮助开发者高效地验证服务功能,确保系统的稳定性和可靠性。无论是对于开发人员还是测试工程师,它都是一个不可或缺的工具。...
LoadRunner由Micro Focus公司开发,它通过模拟大量用户并发执行业务流程,来测试系统在高负载下的性能和稳定性。在Webservice场景下,LoadRunner能够模拟调用HTTP/HTTPS协议的Web服务,评估其处理能力和服务质量。 ...
Web服务接口测试是软件开发过程中不可或缺的一环,特别是在企业级应用和服务化架构中,Webservice作为数据交换的重要手段,其正确性和性能直接影响系统的稳定运行。本文将深入探讨如何利用C#来实现Webservice的测试...
WebService是基于XML(Extensible Markup Language)的网络服务标准,它允许不同的系统通过互联网进行通信和交换数据。SOAP(Simple Object Access Protocol)是用于在Web上进行消息交换的一种协议,它是WebService...
二、WebService测试的重要性 1. 功能验证:测试确保WebService提供的功能按照预期工作,包括输入参数验证、业务逻辑执行和返回结果的准确性。 2. 性能评估:测试可以测量WebService的响应时间、并发处理能力,以确保...
在codefans.net这个网站上,可能会有相关的源码、教程或者论坛讨论,你可以查找有关WebService编写、调用和测试的相关资料,进一步学习和实践。 总结,WebService作为跨平台的通信手段,其编写、调用和测试是IT开发...
6. **使用方法**:使用Storm进行测试通常涉及配置测试环境,设置接口的URL、请求参数、期望的响应等信息,然后运行测试并分析结果。对于复杂的测试场景,可能还需要编写测试脚本,实现自动化测试。 7. **最佳实践**...
WebService Mock是用于模拟WebServices的非常简单但功能强大的工具。 为什么要使用WebService模拟? 通过非侵入性方式实现模拟,甚至无需编写任何代码行,这意味着无需模拟服务存根。 可以用于对应用程序进行压力...
标题中的“Postman在线测试webservice服务”是指使用Postman工具对Web Service接口进行功能验证和性能测试的过程。Postman是一款强大的API开发、测试和文档工具,尤其适用于RESTful服务,但同样可以用来测试传统的...
7. **自动化测试**:为了提高效率和减少人为错误,通常会将接口测试自动化,例如使用JUnit、TestNG等框架结合Mock服务器进行集成测试。 8. **持续集成**:将接口测试集成到持续集成/持续部署(CI/CD)流程中,每次...
在本例中,“webservice的一个测试例子”是一个用于学习和日后参考的实例,它可能包含了创建和调用Web服务的基本步骤。 首先,让我们深入了解一下Web服务的工作原理。Web服务通过使用XML来描述数据,这样任何能够...
使用 SOAPUI 对 WEBSERVICE 进行性能测试 SOAPUI 是一个功能强大且广泛应用的性能测试工具,能够对 WEBSERVICE 进行详细的性能测试。在本文中,我们将详细介绍如何使用 SOAPUI 对 WEBSERVICE 进行性能测试,包括...
Web服务(WebService)是一种基于互联网的、...总的来说,Web服务接口测试是一项重要的质量保证活动,通过使用专业的测试工具,我们可以有效地确保WebService的质量、性能和安全性,为系统间的协同工作提供可靠的保障。
在实际应用中,使用WebserviceStudio20这样的测试工具,开发者可以高效地测试Web服务的正确性、稳定性和性能,确保在上线前达到预期标准。同时,它也是团队协作中,开发者与测试人员之间进行沟通和验证的有效手段,...
Web服务(WebService)是一种基于互联网的、平台独立的交互方式,它允许不同系统之间的应用程序进行通信。WebService通常采用XML(可扩展标记语言)作为数据交换格式,并通过SOAP(简单对象访问协议)在HTTP协议上...