Concordion-목록에서 실행
Concordion 실행 명령은 반복되는 방식으로 Concordion 조명기의 작동을 실행하는 데 사용할 수 있습니다. 예를 들어 목록 형태로 여러 예를 사용하여 요구 사항을 설명하려는 경우 유용합니다.
다음 요구 사항을 고려하십시오-
<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>
이름을 이름과 성으로 분할하는 분할 함수에 대한 사양을 작성하려면 사양은 다음과 같습니다.
<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>
Concordion은 문서를 구문 분석 할 때 특수 변수 #TEXT의 값을 현재 요소의 값으로 "Robert De"로 설정하고이를 split 함수에 전달합니다. 그런 다음 execute 명령을 사용하여 매개 변수를 #TEXT로하여 split () 메서드를 실행하고 결과를 #result 변수로 설정하고 result를 사용하여 firstName 및 lastName 값을 출력으로 인쇄합니다.
예
작동하는 Eclipse IDE를 준비하고 아래 단계에 따라 Concordion 애플리케이션을 만듭니다.
단계 | 기술 |
---|---|
1 | 이름이 일치 하는 프로젝트를 만들고 아래에 com.tutorialspoint 패키지를 만듭니다 .src 생성 된 프로젝트의 폴더. |
2 | Concordion-First Application 장에 설명 된대로 Add External JARs 옵션을 사용하여 필수 Concordion 라이브러리를 추가 합니다. |
삼 | com.tutorialspoint 패키지 아래에 Java 클래스 시스템을 만듭니다 . |
4 | specs.tutorialspoint 패키지 아래에 Fixture 클래스 SystemFixture를 만듭니다 . |
5 | specs.tutorialspoint 패키지 아래에 사양 html System.html을 만듭니다 . |
6 | 마지막 단계는 모든 Java 파일 및 사양 파일의 내용을 만들고 아래 설명 된대로 응용 프로그램을 실행하는 것입니다. |
다음은 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;
}
}
다음은 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);
}
}
다음은 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>
소스 및 사양 파일 생성이 완료되면 애플리케이션을 JUnit 테스트로 실행하겠습니다. 응용 프로그램에 문제가 없으면 다음과 같은 결과가 생성됩니다.
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 4, Failures: 0
System.html은 Concordion 테스트 실행의 출력입니다.