Concordion - Thực thi trên danh sách
Lệnh thực thi Concordion có thể được sử dụng để chạy hoạt động của bộ cố định concordion theo cách lặp lại. Ví dụ, sẽ rất hữu ích nếu chúng ta muốn minh họa một yêu cầu bằng nhiều ví dụ dưới dạng danh sách.
Hãy xem xét yêu cầu sau:
<ul>
<li>The full name Robert De is to be split as
<ul>
<li>Robert</li>
<li>De</li>
</ul>
</li>
<li>The full name John Diere is to be split as
<ul>
<li>John</li>
<li>Diere</li>
</ul>
</li>
</ul>
Nếu chúng ta muốn viết một đặc tả cho một hàm tách sẽ tách một tên thành họ và tên của nó, thì đặc tả sẽ như sau:
<ul>
<li>The full name <span concordion:execute = "#result = split(#TEXT)">
Robert De</span> is to be splited as
<ul>
<li><span concordion:assertEquals = "#result.firstName">Robert</span></li>
<li><span concordion:assertEquals = "#result.lastName">De</span></li>
</ul>
</li>
<li>The full name <span concordion:execute = "#result = split(#TEXT)">
John Diere</span> is to be splited as
<ul>
<li><span concordion:assertEquals = "#result.firstName">John</span></li>
<li><span concordion:assertEquals = "#result.lastName">Diere</span></li>
</ul>
</li>
</ul>
Khi Concordion phân tích cú pháp tài liệu, nó sẽ đặt giá trị của biến đặc biệt #TEXT thành giá trị của phần tử hiện tại là "Robert De" và chuyển nó vào hàm tách. Sau đó, nó sẽ thực thi phương thức split () với các tham số là #TEXT bằng cách sử dụng lệnh execute và đặt kết quả thành biến #result và sử dụng kết quả, in giá trị firstName và lastName làm đầu ra.
Thí dụ
Hãy để chúng tôi có một IDE Eclipse đang hoạt động tại chỗ và làm theo các bước dưới đây để tạo một ứng dụng Concordion -
Bươc | Sự miêu tả |
---|---|
1 | Tạo một dự án với một tên concordion và tạo ra một gói com.tutorialspoint dướisrc thư mục trong dự án đã tạo. |
2 | Thêm thư viện Concordion bắt buộc bằng cách sử dụng tùy chọn Thêm JAR bên ngoài như được giải thích trong chương Concordion - Ứng dụng đầu tiên . |
3 | Tạo Hệ thống lớp Java theo gói com.tutorialspoint . |
4 | Tạo lớp Fixture SystemFixture theo gói specs.tutorialspoint . |
5 | Tạo Thông số kỹ thuật html System.html trong gói specs.tutorialspoint . |
6 | Bước cuối cùng là tạo nội dung của tất cả các tệp Java và tệp đặc tả và chạy ứng dụng như được giải thích bên dưới. |
Đây là nội dung của tệp System.java -
package com.tutorialspoint;
import org.concordion.api.MultiValueResult;
public class System {
public MultiValueResult split(String userName){
MultiValueResult result = new MultiValueResult();
String[] words = userName.split(" ");
result.with("firstName", words[0]).with("lastName", words[1]);
return result;
}
}
Sau đây là nội dung của tệp SystemFixture.java:
package specs.tutorialspoint;
import org.concordion.api.MultiValueResult;
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 MultiValueResult split(String userName){
return system.split(userName);
}
}
Sau đây là nội dung của tệp System.html -
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type = "text/css" />
</head>
<body>
<h1>System Specifications</h1>
<p>We are building specifications for our online order tracking application.</p>
<p>Following is the requirement to split full name of a logged
in user to its constituents by splitting name by whitespace:</p>
<div class = "example">
<h3>Example</h3>
<ul>
<li>The full name <span concordion:execute = "#result = split(#TEXT)">
Robert De</span> is to be splited as
<ul>
<li><span concordion:assertEquals = "#result.firstName">
Robert</span></li>
<li><span concordion:assertEquals = "#result.lastName">
De</span></li>
</ul>
</li>
<li>The full name <span concordion:execute ="#result = split(#TEXT)">
John Diere</span> is to be splited as
<ul>
<li><span concordion:assertEquals = "#result.firstName">
John</span></li>
<li><span concordion:assertEquals = "#result.lastName">
Diere</span></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
Khi bạn đã hoàn tất việc tạo tệp nguồn và đặc tả, hãy để chúng tôi chạy ứng dụng dưới dạng Kiểm tra JUnit. Nếu mọi thứ đều ổn với ứng dụng của bạn, thì nó sẽ tạo ra kết quả sau:
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 4, Failures: 0
System.html là kết quả của quá trình chạy thử nghiệm Concordion.