[Wtr-general] Undefined method error
David Solis
dsolis at yahoo.com
Mon Mar 20 21:42:30 EST 2006
Hello,
Im running into a problem I think is a probably a programming error in my part.
Here is what Im trying to accomplish: I have script with 2800 lines of code. My test cases in the script have many repeatable steps. For each test case, Im basically coding the same steps over an over again and thus I get hundreds of lines of code.
My first inclination was to break out the test and make them into separate files so that the script is not so big and less error prone. But I would be doing the same thing as I was doing earlier except now I would have to maintain many files rather one.
So what I want to do is create a method that contains the repeatable steps that are used in every test case and call the method when I need to execute the steps. The method would live in separate file. Sounds easy, right? Well, when I try to a get this error:
1) Error:
test_steps(AccountManagementSteps):
NoMethodError: undefined method `link' for nil:NilClass
./negative_tierI_steps.rb:37:in `test_steps'
2) Error:
test_01_account_management(TC_Negative):
ArgumentError: wrong number of arguments (0 for 1)
C:/automation/src/thdf/projects/core/testharness/fixtures/admin_administration/tc_tierI_negative_tests.rb:67:in `initialize'
C:/automation/src/thdf/projects/core/testharness/fixtures/admin_administration/tc_tierI_negative_tests.rb:67:in `new'
C:/automation/src/thdf/projects/core/testharness/fixtures/admin_administration/tc_tierI_negative_tests.rb:67:in `test_01_account_management'
Here is the code. The method Im calling is called AccountManagementSteps. Require 'setup' halls my require statements including so I know the script has the proper require statements. require 'negative_tierI_steps.rb' contains the steps that are given me the problem.
require 'setup'
require 'negative_tierI_steps.rb'
TOPDIR = File.join(File.dirname(__FILE__), '..')
$LOAD_PATH.unshift TOPDIR
class TC_Negative < Test::Unit::TestCase
def test_01_account_management
puts ''; puts '';
puts "############ Starting Test Class: TC_tierI_negative_tests ############";
puts ''
puts 'Executing test 01 - Account Management Access'
puts ''
@login = Login.new($user, $password, $url, $submit_key);
# create a random Admin user name
@random_name = UserRandomName.new();
$username = @random_name.User();
# Create a new Admin User
@admin_user = CreateUser.new($username);
# Verify that user was created
assert($ie.contains_text($save_msg));
@login.logout("admin");
assert($ie.contains_text($logoff_msg));
@login.shutdown();
# Login as superuser
@login = Login.new($user, $password, $url, $submit_key);
@group_details = 0
set_group = SetPermission.new()
set_group.fSteps(@group_details);
assert($ie.contains_text($save_msg));
@login.logout("admin");
assert($ie.contains_text($logoff_msg));
@login.shutdown();
@login = Login.new($username, $password, $url, $submit_key);
@steps = AccountManagementSteps.new()
@steps.test_steps()
end
This is the code in the method Im calling.
require 'setup'
require 'watir'
require 'test/unit'
require 'test/unit/ui/console/testrunner'
require 'watir/testUnitAddons'
class AccountManagementSteps < Test::Unit::TestCase
def initialize()
end
def test_steps()
$ie.link(:text, "Account management").click();
assert($ie.contains_text("Manage Accounts"));
$ie.link(:text, "Manage settings").click();
assert($ie.contains_text($no_autho_msg));
$ie.link(:text, "Manage affiliates").click();
assert($ie.contains_text($no_autho_msg));
$ie.link(:text, "Admin authentication").click();
$ie.link(:text, "AAUT").click();
assert($ie.contains_text($no_autho_msg));
$ie.link(:text, "Payment processing").click();
assert($ie.contains_text($no_autho_msg));
$ie.link(:text, "Promotions").click();
$ie.link(:text, "Create New Promotion").click();
assert($ie.contains_text($no_autho_msg));
$ie.link(:text, "Content keys").click();
assert($ie.contains_text($no_autho_msg));
$ie.link(:text, "Pay Model").click();
table = $ie.table(:index, 9)
#table.flash
sleep 1
table[1][5].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Game Library").click();
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Game Settings").click();
assert($ie.contains_text($no_autho_msg));
$ie.link(:text, "Game Menu Tabs").click();
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Community Games").click();
#table = $ie.table(:index, 9)
#sleep 1
#table[1][3].image(:name, "updatetop").click
#assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Community User Migration").click();
# No update button available. Need to figure out how to assert false for no buttons
$ie.link(:text, "Community User Upload").click();
# Need address attaching files
#$ie.link(:text, "Community Management").click();
#$ie.text_field(:name, "newCommunity").set("Test")
#table = $ie.table(:index, 10)
#sleep 1
#table[1][3].image(:name, "form_top_singl_create").click
#assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Jackpot List").click();
# Jackpot lists allowed - research test case
$ie.link(:text, "Jackpot Details").click();
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Jackpot Adjustments").click();
$ie.text_field(:name, "AdjustAmt").set("1000")
$ie.text_field(:name, "ReasonText").set("This is a test")
table = $ie.table(:index, 19)
sleep 1
table[1][3].image(:name, "createbottom").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Settings").click();
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Game Points").click();
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Customer Search").click();
# User allowed to make Customer Search
$ie.link(:text, "Tournament List").click();
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Real Time List").click();
# Page is not displayed - Research test case
$ie.link(:text, "Post Hoc Online").click();
# Page is not displayed - Research test case
$ie.link(:text, "Post Hoc Offline").click();
# Page is not displayed - Research test case
$ie.link(:text, "User Transaction Search").click();
$ie.text_field(:name, "username").set("Joe Tester")
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Action Score").click();
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Group Weights").click();
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Results Score").click();
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Countries in Juris.").click();
$ie.link(:url, "javascript:submit_form('ADMINJurCountriesUpdate','1','select')").click();
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Groups in Juris.").click();
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "DSPs in Group").click();
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "DSPs in Country/group").click();
$ie.text_field(:name, "VendorPriority0").set("88")
$ie.checkbox(:name, "CurrentMember0").set
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "updatetop").click
assert($ie.contains_text($no_permission_msg))
$ie.link(:text, "Search MVF Users").click();
$ie.select_list( :name , "country").select("United Kingdom");
table = $ie.table(:index, 9)
sleep 1
table[1][3].image(:name, "searchtop").click
assert($ie.contains_text($no_permission_msg))
end
end
Any ideas?
Thanks
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/wtr-general/attachments/20060320/8dec1f07/attachment.html
More information about the Wtr-general
mailing list