gpt4 book ai didi

ruby - 在 Ruby 中为 REST API 编写单元测试

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:30 27 4
gpt4 key购买 nike

我已经使用 sinatra 编写了一个基本的 REST API。

有谁知道为它编写测试的最佳方法吗?我想使用 Ruby 来做到这一点。

我已经使用 curl 完成了初步测试。但我想做一些更强大的事情。这是我的第一个 API - 有什么我应该测试的具体内容吗?

最佳答案

最好的方式见仁见智:) 就我个人而言,我喜欢简单干净。使用像 minitest 这样的工具,Watirrest-client ,您可以对 REST 界面进行非常简单的测试,并通过实际浏览器(支持所有主要浏览器)测试您的 Web 服务。

#!/usr/bin/ruby
#
# Requires that you have installed the following gem packages:
# json, minitest, watir, watir-webdrive, rest-client
# To use Chrome, you need to install chromedriver on your path

require 'rubygems'
require 'rest-client'
require 'json'
require 'pp'
require 'minitest/autorun'
require 'watir'
require 'watir-webdriver'

class TestReportSystem < MiniTest::Unit::TestCase
def setup
@browser = Watir::Browser.new :chrome # Defaults to firefox. Can do Safari and IE too.
# Log in here.....
end

def teardown
@browser.close
end

def test_report_lists # For minitest, the method names need to start with test
response = RestClient.get 'http://localhost:8080/reporter/reports/getReportList'
assert_equal response.code,200
parsed = JSON.parse response.to_str
assert_equal parsed.length, 3 # There are 3 reports available on the test server
end

def test_on_browser
@browser.goto 'http://localhost:8080/reporter/exampleReport/simple/genReport?month=Aug&year=2012'
assert(@browser.text.include?('Report for Aug 2012'))
end
end

只需执行脚本即可运行测试用例。 Ruby 有许多其他测试系统和 REST 客户端,它们可以以类似的方式投入使用。

关于ruby - 在 Ruby 中为 REST API 编写单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4812132/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com