Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中的步骤定义中使用Cucumber数据表中的变量名?_Java_Datatable_Cucumber_Bdd - Fatal编程技术网

如何在Java中的步骤定义中使用Cucumber数据表中的变量名?

如何在Java中的步骤定义中使用Cucumber数据表中的变量名?,java,datatable,cucumber,bdd,Java,Datatable,Cucumber,Bdd,我在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

我在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);
“^I搜索现有用户并将其删除$”时的
”
public void i_search_查找_现有_用户_和_delete_it(数据表)抛出可丢弃{
//我从数据表中获取用户列表,然后通过manageusers中的web元素传递它们
睡眠(5000);
List user=table.raw();
System.out.println(“-------------------------------------------------------------”;
System.out.println(“特征文件中的用户数:+user.size());
试一试{
对于(inti=0;i
最简单的方法是简单地检查用户值是否为
ORGADMINUSER\u LASTNAME
,然后简单地调用该变量并用该变量替换
Userstring

否则,如果您想要更通用的东西,您可能需要查看反射API。类似于:
classoffield.getField(Userstring).get(null)


只需首先使用
getFields()
确保Userstring字段存在于
classoffield
中,否则您将得到一个
NoSuchFieldException
,并且该字段是静态的(如果不在get调用中,则传入类的实例).

最简单的方法是简单地检查用户值是否为
ORGADMINUSER\u LASTNAME
,然后简单地调用该变量并用该变量替换
Userstring

否则,如果您想要更通用的东西,您可能需要查看反射API。类似于:
classoffield.getField(Userstring).get(null)


只需首先使用
getFields()
确保Userstring字段存在于
classoffield
中,否则您将得到一个
NoSuchFieldException
,并且该字段是静态的(如果不在get调用中,则传入类的实例).

使用getter获取该变量的值?是否使用getter获取该变量的值?