我在Cucumber中有以下场景:
Scenario: As sysadmin I delete an user used for testing
Given I in selfservice at the page Manage user
When I search for an existing user
| users | ORGADMINUSER_LASTNAME |
| users | ORGADMINUSER_LASTNAME |
字符串ORGADMINUSER_LASTNAME是我的Java类中的一个变量,它在执行场景时包含一个值。如何将此字符串转换为具有该名称的变量值?
这是Java中的步骤定义:
@When("^I search for an existing user and delete it$")
public void i_search_for_an_existing_user_and_delete_it(DataTable table) throws Throwable {
// I get the list of users from the Data table and then pass them through the web elements in manage users
Thread.sleep(5000);
List<List<String>> user =table.raw();
System.out.println("----------------------------------------------");
System.out.println("Number of users in Feature file: " + user.size());
try{
for (int i = 0; i < user.size(); i++) {
List<String> org= user.get(i);
String Userstring=user.get(i).get(1).toString();
System.out.println("----------------------------------------------");
System.out.println(Userstring);
答案 0 :(得分:0)
最简单的方法是简单地检查用户值是否为= 0
,然后简单地对该变量进行get调用,并将ORGADMINUSER_LASTNAME
替换为该变量。
否则,如果您想要更通用的东西,则可能需要研究Reflection API。就像是:
Userstring
只需先使用ClassOfTheField.getField(Userstring).get(null)
确保Userstring字段存在于ClassOfTheField
中,否则您将得到一个getFields()
并且该字段是静态的(或传入类的实例)如果不在get调用中)。