📜  Concordion-verifyRows命令

📅  最后修改于: 2020-12-07 04:45:37             🧑  作者: Mango


Concordion verifyRows命令可用于检查系统作为结果返回的集合的内容。例如,如果我们在系统中设置了一组用户并对其进行了部分搜索,则系统应返回匹配的元素,否则我们的验收测试将失败。

考虑以下要求-

Step Description
1 Create a project with a name concordion and create a package com.tutorialspoint under the src folder in the created project.
2 Add the required Concordion libraries using Add External JARs option as explained in the Concordion - First Application chapter.
3 Create Java class System under the com.tutorialspoint package.
4 Create Fixture class SystemFixture under the specs.tutorialspoint package.
5 Create Specification html System.html under the specs.tutorialspoint package.
6 The final step is to create the content of all the Java files and specification file and run the application as explained below.

Search for J should return:

Matching Users
John Diere
Julie Re

如果我们要为将搜索并返回集合的搜索函数编写规范,则该规范如下-

Username
Robert De
John Diere
Julie Re

Search for "J" should return:

Matching Usernames
John Diere
Julie Re

当Concordion解析文档时,它将在第一个表的每一行上执行addUser(),然后将searchString设置为J。接下来,Concordion将执行搜索功能,该函数应返回具有可预测迭代顺序的Iterable对象(例如List,LinkedHashSet或TreeSet),对集合的每个项目运行verifyRows并运行assertEquals命令。

让我们拥有一个运行良好的Eclipse IDE,并按照下面给出的步骤创建一个Concordion应用程序-

描述
1个 创建一个名称concordion一个项目,并在创建的项目创建的src文件夹下的一个包com.tutorialspoint。
2 按照“ Concordion-第一个应用程序”一章中的说明,使用“添加外部JAR”选项添加所需的Concordion库。
3 com.tutorialspoint包下创建Java类System
4 创建specs.tutorialspoint包下夹具类SystemFixture。
5 specs.tutorialspoint包下创建规范HTML System.html。
6 最后一步是创建所有Java文件和规范文件的内容,然后按以下说明运行应用程序。

这是System.java文件的内容-

package com.tutorialspoint;

import java.util.HashSet;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;

public class System { 
   private Set users = new HashSet();
    
   public void addUser(String username) {
      users.add(username);
   }
    
   public Iterable search(String searchString) {
      SortedSet matches = new TreeSet();
        
      for (String username : users) {
         if (username.contains(searchString)) {
            matches.add(username);
         }
      }
        
      return matches;
   }
}

以下是SystemFixture.java文件的内容-

package specs.tutorialspoint;

import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
import com.tutorialspoint.System;

@RunWith(ConcordionRunner.class)

public class SystemFixture {
   System system = new System();
   public void addUser(String username) {
      system.addUser(username);
   }
    
   public Iterable search(String searchString) {
      return system.search(searchString);
   }
}

以下是System.html文件的内容-


   

   
      

System Specifications

We are building specifications for our online order tracking application.

Following is the requirement to add a partial search capability on user names:

Example

Username
Robert De
John Diere
Julie Re

Search for "J" should return:

Matching Usernames
John Diere
Julie Re

创建完源文件和规范文件后,让我们将应用程序作为JUnit Test运行。如果您的应用程序一切正常,则将产生以下结果-

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 2, Failures: 0

System.html是Concordion测试运行的输出。

concorord verifyRows输出