【问题标题】:Data driven testing with ruby testunit使用 ruby​​ 测试单元进行数据驱动测试
【发布时间】:2013-10-29 10:02:28
【问题描述】:

我有一个非常基本的问题,我无法找到任何解决方案。

所以我正在使用带有 testunit 的 Watir Webdriver 来测试我的 Web 应用程序。 我有一个测试方法,我想针对多组测试数据运行它。

虽然我当然可以使用旧的循环技巧来运行它,但这会显示为只运行了 1 个测试,这不是我想要的。

我知道在 testng 我们有 @dataprovider,我正在 testunit 中寻找类似的东西。

任何帮助!

这是我目前所拥有的:

[1,2].each do |p|
define_method :"test_that_#{p}_is_logged_in" do
 # code to log in
end
end

这很好用。但我的问题是我将如何以及在何处创建可以循环访问的数据。我正在从 excel 中读取我的数据,说我有一个从 excel 中获得的哈希列表,例如 [{:name =>abc,:password => test},{:name =>def,:password => test}]

当前代码状态:

    class RubyTest < Test::Unit::TestCase

    def setup
      @excel_array = util.get_excel_map //This gives me an array of hash from excel
    end

     @excel_array.each do |p|
     define_method :"test_that_#{p}_is_logged_in" do
       //Code to check login
     end
     end

我正在努力运行循环。我在类声明行收到一条错误消息,提示“nil:NilClass (NoMethodError) 的未定义方法‘每个’”

【问题讨论】:

  • 我还在学习 testunit,所以目前还没有我尝试过或可以分享的代码,想在开始之前获得基本的想法
  • 我至少会开始......然后问你需要继续的问题。这是 StackOverflow 的传统。你显然有问题,你一定尝试过什么……否则你没有解决这个问题。
  • 用代码编辑问题
  • 无论数据是如何存储的,然后收集已登录的用户并查看该登录是否存在。
  • @Pratik,您是否已经有了从 excel 中提取数据的代码?换句话说,您是否只是在寻找如何遍历该数组并从中定义测试?

标签: ruby watir-webdriver testunit


【解决方案1】:

你想做这样的事情:

require 'minitest/autorun'

describe 'Login' do
  5.times do |number|
    it "must allow user#{number} to login" do
      assert true # replace this assert with your real code and validation
    end
  end
end

当然,我在这里混合了规范和测试/单元断言措辞,但无论如何,在断言所在的位置,您将放置断言/期望。

就这段代码而言,它将通过 5 次,如果您以故事的形式报告,它将根据用户编号进行更改以进行适当的测试。

从哪里获取数据,即丢失的代码部分,您还没有尝试得到错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2017-01-06
    • 2010-10-20
    相关资源
    最近更新 更多