1

解決策を見つけることができない非常に基本的な問題があります。

そのため、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 からデータを読み取っていると、[{: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) の未定義メソッド `each'」というエラーが表示されます

4

1 に答える 1

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回合格し、ストーリー形式で報告する場合は、適切なテストのユーザー数によって変更されます。

どこからデータを取得するか、それは不足しているコードの部分であり、まだ試行してエラーを取得する必要があります。

于 2013-10-29T13:35:31.453 に答える