Concordion - คู่มือฉบับย่อ
Concordion คืออะไร?
Concordion เป็นเครื่องมือที่มีประสิทธิภาพในการเขียนและจัดการการทดสอบการยอมรับอัตโนมัติในโครงการที่ใช้ Java มันรวมเข้ากับ JUnit framework โดยตรงทำให้พร้อมใช้งานกับ IDE ที่ใช้ JAVA ยอดนิยมเช่น Netbeans, Eclipse, IntelliJ IDEA
ข้อกำหนดซอฟต์แวร์ที่ใช้งานอยู่
ข้อมูลจำเพาะซอฟต์แวร์ที่ใช้งานอยู่เป็นวิธีระบุลักษณะการทำงานของคุณลักษณะ นอกจากนี้ยังมีวิธีการใช้งานและตรวจสอบข้อกำหนดซอฟต์แวร์โดยมีการเชื่อมต่อกับระบบที่กำลังพัฒนา
ข้อมูลจำเพาะที่ใช้งานอยู่ใน Concordion มีสองส่วน:
เอกสารข้อกำหนดที่เป็นลายลักษณ์อักษรซึ่งอธิบายถึงฟังก์ชันการทำงานที่ต้องการซึ่งเขียนโดยใช้ XHTML ข้อกำหนดตาม XHTML ประกอบด้วยคำอธิบายของฟังก์ชันการทำงานที่มาพร้อมกับตัวอย่างการทดสอบการยอมรับ ข้อมูลของตัวอย่างถูกทำเครื่องหมายโดยใช้แท็ก HTML ธรรมดา
การทดสอบการยอมรับเขียนด้วยภาษา Java เรียกว่ารหัสฟิกซ์เจอร์ การใช้ส่วนขยาย Concordion ของกรณีทดสอบ JUnit มาตรฐานจะดำเนินการทดสอบ เป็นความรับผิดชอบของ Fixture Code ในการค้นหาข้อมูลตัวอย่างที่ทำเครื่องหมายด้วยแท็กและใช้เพื่อตรวจสอบซอฟต์แวร์ที่อยู่ระหว่างการพัฒนา
เอาต์พุตของ Cncordion
เมื่อมีการทดสอบคุณสมบัติ Concordion ที่ใช้งานอยู่ไฟล์ outpu XHTML จะแสดงข้อมูลจำเพาะและผลการทดสอบดั้งเดิม การทดสอบที่ประสบความสำเร็จจะเน้นโดยใช้สี "เขียว" และการทดสอบที่ล้มเหลวจะเน้นโดยใช้ "สีแดง" เนื่องจากการเปลี่ยนแปลงใด ๆ ในระบบจะส่งผลให้การทดสอบล้มเหลวซึ่งช่วยในการระบุว่าจะต้องอัปเดตข้อมูลจำเพาะ Concordion จึงกำหนดข้อกำหนดเหล่านี้เป็นข้อกำหนดที่ใช้งานอยู่ ข้อมูลจำเพาะจึงเป็นข้อมูลล่าสุดเสมอ
คุณสมบัติหลัก
ต่อไปนี้เป็นคุณสมบัติที่สำคัญของ Concordion:
Specifications as documentation- ข้อกำหนด Concordion ที่อ่านได้สูงสามารถใช้เป็นเอกสารของระบบที่ใช้งานได้ เนื่องจากข้อกำหนดตาม Concordion เขียนด้วย HTML เอกสารเหล่านี้จึงสามารถเชื่อมโยงหลายมิติได้
Specifications are live- ข้อกำหนด Concordion ประกอบด้วยตัวอย่างการทำงานของพฤติกรรมที่ดำเนินการกับระบบ ข้อมูลจำเพาะมีรหัสสีเพื่อให้ทุกคนเห็นว่าตัวอย่างใช้งานได้หรือไม่ การดำเนินการตามข้อกำหนดของ Concordion ทำให้เอกสารเป็นปัจจุบันอยู่เสมอ
Separate "what?" from "how?"- ข้อกำหนด Concordion ช่วยในการรักษาการแยกระหว่างการใช้งานและพฤติกรรมที่ต้องการของระบบ ให้ความยืดหยุ่นที่สามารถเปลี่ยนแปลงการนำไปใช้งานได้ในภายหลัง
Simple to learn- ห้องสมุด Concordion ได้รับการออกแบบโดยให้ช่วงการเรียนรู้สั้นและกระชับ มีคำสั่งให้เรียนรู้น้อยมากและตัวอย่างจะดำเนินการโดยอัตโนมัติโดยใช้การทดสอบ JUnit เพื่อให้สามารถเรียกใช้การทดสอบได้ง่ายและสามารถรวมเข้ากับโครงการที่มีอยู่ได้อย่างง่ายดาย
Powerful Customization- Concordion มี API ส่วนขยายซึ่งอนุญาตให้เพิ่มฟังก์ชันการทำงาน ตัวอย่างเช่นสเปรดชีต Excel สามารถใช้เป็นข้อมูลจำเพาะสามารถเพิ่มภาพหน้าจอลงในผลลัพธ์ข้อมูลการบันทึกสามารถแสดงและอื่น ๆ อีกมากมาย
บทช่วยสอนนี้จะแนะนำคุณเกี่ยวกับวิธีเตรียมสภาพแวดล้อมการพัฒนาเพื่อเริ่มงานของคุณกับ Spring Framework บทช่วยสอนนี้จะสอนวิธีตั้งค่า JDK, Tomcat และ Eclipse บนเครื่องของคุณก่อนที่คุณจะติดตั้ง Spring Framework:
ขั้นตอนที่ 1 - ตั้งค่า Java Development Kit (JDK):
คุณสามารถดาวน์โหลด SDK เวอร์ชันล่าสุดจากเว็บไซต์ Java ของออราเคิล: Java SE ดาวน์โหลด คุณจะพบคำแนะนำในการติดตั้ง JDK ในไฟล์ที่ดาวน์โหลดทำตามคำแนะนำที่กำหนดเพื่อติดตั้งและกำหนดค่าการตั้งค่า สุดท้ายตั้งค่าตัวแปรสภาพแวดล้อม PATH และ JAVA_HOME เพื่ออ้างถึงไดเร็กทอรีที่มี java และ javac โดยทั่วไปคือ java_install_dir / bin และ java_install_dir ตามลำดับ
หากคุณใช้ Windows และติดตั้ง JDK ใน C: \ jdk1.7.0_75 คุณจะต้องใส่บรรทัดต่อไปนี้ในไฟล์ C: \ autoexec.bat ของคุณ
set PATH=C:\jdk1.7.0_75\bin;%PATH%
set JAVA_HOME=C:\jdk1.7.0_75
หรือใน Windows NT / 2000 / XP คุณสามารถคลิกขวาที่ My Computer เลือก Properties จากนั้นเลือก Advanced จากนั้น Environment Variables จากนั้นคุณจะอัปเดตค่า PATH และกดปุ่ม OK
ใน Unix (Solaris, Linux ฯลฯ ) หากติดตั้ง SDK ใน /usr/local/jdk1.7.0_75 และคุณใช้ C เชลล์คุณจะใส่สิ่งต่อไปนี้ลงในไฟล์. cshrc ของคุณ
setenv PATH /usr/local/jdk1.7.0_75/bin:$PATH
setenv JAVA_HOME /usr/local/jdk1.7.0_75
หรืออีกวิธีหนึ่งถ้าคุณใช้ Integrated Development Environment (IDE) เช่น Borland JBuilder, Eclipse, IntelliJ IDEA หรือ Sun ONE Studio ให้คอมไพล์และรันโปรแกรมง่ายๆเพื่อยืนยันว่า IDE รู้ตำแหน่งที่คุณติดตั้ง Java หรือทำการตั้งค่าที่เหมาะสมตามเอกสารที่กำหนด ของ IDE
ขั้นตอนที่ 2 - ตั้งค่า Eclipse IDE
ตัวอย่างทั้งหมดในบทช่วยสอนนี้เขียนขึ้นโดยใช้ Eclipse IDE ดังนั้นฉันขอแนะนำให้คุณติดตั้ง Eclipse เวอร์ชันล่าสุดในเครื่องของคุณ
ในการติดตั้ง Eclipse IDE ให้ดาวน์โหลดไบนารี Eclipse ล่าสุดจาก http://www.eclipse.org/downloads/. เมื่อคุณดาวน์โหลดการติดตั้งแล้วให้แกะการแจกแจงไบนารีในตำแหน่งที่สะดวก ตัวอย่างเช่นใน C: \ eclipse บน windows หรือ / usr / local / eclipse บน Linux / Unix และสุดท้ายตั้งค่าตัวแปร PATH ให้เหมาะสม
Eclipse สามารถเริ่มต้นได้โดยดำเนินการคำสั่งต่อไปนี้บนเครื่อง windows หรือคุณสามารถดับเบิลคลิกที่ eclipse.exe
%C:\eclipse\eclipse.exe
Eclipse สามารถเริ่มต้นได้โดยดำเนินการคำสั่งต่อไปนี้บนเครื่อง Unix (Solaris, Linux และอื่น ๆ ):
$/usr/local/eclipse/eclipse
หลังจากเริ่มต้นสำเร็จหากทุกอย่างเรียบร้อยดีแล้วควรแสดงผลลัพธ์ดังนี้:
ขั้นตอนที่ 3: ดาวน์โหลด Junit archive
ดาวน์โหลดไฟล์ JUnit jar เวอร์ชันล่าสุดจาก http://www.junit.org. ในขณะที่เขียนบทช่วยสอนนี้ฉันดาวน์โหลดJunit-4.10.jarและคัดลอกลงในโฟลเดอร์ C: \> JUnit
ระบบปฏิบัติการ | ชื่อที่เก็บถาวร |
---|---|
Windows | junit4.10.jar |
ลินุกซ์ | junit4.10.jar |
Mac | junit4.10.jar |
ขั้นตอนที่ 4: ตั้งค่าสภาพแวดล้อม JUnit
ตั้งค่า JUNIT_HOMEตัวแปรสภาพแวดล้อมเพื่อชี้ไปยังตำแหน่งไดเร็กทอรีฐานที่เก็บ JUNIT jar ไว้ในเครื่องของคุณ สมมติว่าเราได้จัดเก็บ junit4.10.jar ไว้ในโฟลเดอร์ JUNIT บนระบบปฏิบัติการต่างๆดังนี้
ระบบปฏิบัติการ | เอาต์พุต |
---|---|
Windows | ตั้งค่าตัวแปรสภาพแวดล้อม JUNIT_HOME เป็น C: \ JUNIT |
ลินุกซ์ | ส่งออก JUNIT_HOME = / usr / local / JUNIT |
Mac | ส่งออก JUNIT_HOME = / Library / JUNIT |
ขั้นตอนที่ 5: ตั้งค่าตัวแปร CLASSPATH
ตั้งค่า CLASSPATHตัวแปรสภาพแวดล้อมเพื่อชี้ไปยังตำแหน่ง JUNIT jar สมมติว่าเราได้จัดเก็บ junit4.10.jar ไว้ในโฟลเดอร์ JUNIT บนระบบปฏิบัติการต่างๆดังนี้
ระบบปฏิบัติการ | เอาต์พุต |
---|---|
Windows | ตั้งค่าตัวแปรสภาพแวดล้อม CLASSPATH เป็น% CLASSPATH%;% JUNIT_HOME% \ junit4.10.jar; .; |
ลินุกซ์ | ส่งออก CLASSPATH =$CLASSPATH:$JUNIT_HOME / junit4.10.jar :. |
Mac | ส่งออก CLASSPATH =$CLASSPATH:$JUNIT_HOME / junit4.10.jar :. |
ขั้นตอนที่ 6 - ตั้งค่าไลบรารีความสอดคล้องกัน
ตอนนี้ถ้าทุกอย่างเรียบร้อยคุณสามารถดำเนินการตั้งค่าไลบรารี Concordion ของคุณได้ ต่อไปนี้เป็นขั้นตอนง่ายๆในการดาวน์โหลดและติดตั้งเฟรมเวิร์กบนเครื่องของคุณ
ดาวน์โหลดเวอร์ชันล่าสุดของไบนารีเฟรมเวิร์ก Concordion จาก http://dl.bintray.com/concordion/downloads/concordion-1.5.1.zip.
ในขณะที่เขียนบทช่วยสอนนี้ฉันดาวน์โหลด Concordion-1.5.1 บนเครื่อง Windows ของฉันและเมื่อคุณเปิดเครื่องรูดไฟล์ที่ดาวน์โหลดมามันจะให้โครงสร้างไดเร็กทอรีต่อไปนี้ใน E: \ concordion-1.5.1 ดังนี้
lib - โฟลเดอร์ไลบรารี
hamcrest-core-1.3.jar
junit-4.12.jar
ognl-2.6.9.jar
xom-1.2.5.jar
src - โฟลเดอร์ซอร์สโค้ด
main
test
test-dummies
Concordion-1.5.1.jar
คุณจะพบไลบรารีการพึ่งพา Concordion ทั้งหมดในไดเร็กทอรี E: \ concordion \ lib ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าตัวแปร CLASSPATH บนไดเร็กทอรีนี้อย่างถูกต้องมิฉะนั้นคุณจะประสบปัญหาขณะเรียกใช้แอปพลิเคชันของคุณ หากคุณใช้ Eclipse คุณไม่จำเป็นต้องตั้งค่า CLASSPATH เนื่องจากการตั้งค่าทั้งหมดจะดำเนินการผ่าน Eclipse
เมื่อคุณทำขั้นตอนสุดท้ายนี้เสร็จแล้วคุณก็พร้อมที่จะดำเนินการต่อสำหรับ Concordion Example แรกของคุณซึ่งคุณจะเห็นในบทถัดไป
Concordion - การสมัครครั้งแรก
ให้เราเริ่มเขียนโปรแกรมด้วย Concordion ก่อนที่คุณจะเริ่มเขียนตัวอย่างแรกโดยใช้ Concordion คุณต้องแน่ใจว่าคุณได้ตั้งค่าสภาพแวดล้อม Concordion อย่างถูกต้องตามที่อธิบายไว้ในบทแนะนำConcordion - Environment Setup นอกจากนี้เรายังถือว่าคุณมีความรู้เกี่ยวกับ Eclipse IDE เล็กน้อย
ดังนั้นให้เราดำเนินการเขียนแอปพลิเคชัน Concordion อย่างง่ายซึ่งจะพิมพ์การทดสอบการยอมรับต่อไปนี้ -
Example
When Robert logs in the system, a greeting "Hello Robert!" is displayed.
ขั้นตอนที่ 1 - สร้างโครงการ Java
ขั้นตอนแรกคือการสร้างโปรเจ็กต์ Java แบบง่ายโดยใช้ Eclipse IDE ทำตามตัวเลือกFile → New → Project และสุดท้ายเลือก Java Projectตัวช่วยสร้างจากรายการตัวช่วยสร้าง ตอนนี้ตั้งชื่อโครงการของคุณเป็นConcordion โดยใช้หน้าต่างตัวช่วยสร้างดังนี้ -
เมื่อสร้างโครงการของคุณสำเร็จคุณจะมีเนื้อหาต่อไปนี้ในไฟล์ Project Explorer -
ขั้นตอนที่ 2 - เพิ่มไลบรารีที่ต้องการ
ให้เราเพิ่มความสามัคคีและการอ้างอิงในโครงการของเรา ในการดำเนินการนี้ให้คลิกขวาที่ชื่อโครงการของคุณconcordion จากนั้นทำตามตัวเลือกที่มีอยู่ในเมนูบริบท: Build Path → Configure Build Path เพื่อแสดงหน้าต่าง Java Build Path ดังนี้ -
ตอนนี้ใช้ Add External JARs ปุ่มอยู่ใต้ Libraries เพื่อเพิ่ม JAR หลักต่อไปนี้จากโฟลเดอร์ Concordion
- concordion-1.5.1
- hamcrest-core-1.3
- junit-4.12
- ognl-2.6.9
- xom-1.2.5
ขั้นตอนที่ 3 - สร้างไฟล์ต้นฉบับ
ตอนนี้ให้เราสร้างไฟล์ต้นฉบับจริงภายใต้ไฟล์ concordionโครงการ. ขั้นแรกเราต้องสร้างแพ็คเกจที่เรียกว่าcom.tutorialspoint. โดยคลิกขวาที่src ในส่วน package explorer และทำตามตัวเลือก: New → Package.
ต่อไปเราจะสร้างระบบ .java ไฟล์ภายใต้แพ็คเกจ com.tutorialspoint
นี่คือเนื้อหาของ System.java ไฟล์ -
package com.tutorialspoint;
public class System {
public String getGreeting(String userName){
return "Hello " + userName + "!";
}
}
ขั้นตอนที่ 4 - สร้างไฟล์ข้อมูลจำเพาะ
ตอนนี้ให้เราสร้างไฟล์ข้อกำหนดจริงภายใต้ไฟล์ concordionโครงการ. ขั้นแรกเราต้องสร้างโฟลเดอร์ซอร์สใหม่ชื่อspecs. โฟลเดอร์นี้จะมีไฟล์ข้อมูลจำเพาะเช่น JUnitFixture หรือ test runner และไฟล์ html ซึ่งเป็นข้อมูลจำเพาะ ตอนนี้เราต้องสร้างแพ็คเกจที่เรียกว่าspecs.tutorialspoint. โดยคลิกขวาที่spec ในส่วน package explorer และทำตามตัวเลือก: New → Package.
ต่อไปเราจะสร้าง System.html และ SystemFixture.javaไฟล์ภายใต้แพ็คเกจ specs.tutorialspoint หลังจากนั้นเราจะเพิ่มconcordion.css ภายใต้โฟลเดอร์ซอร์สข้อมูลจำเพาะ
นี่คือเนื้อหาของไฟล์ 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 show greeting to logged in user:</p>
<div class = "example">
<h3>Example</h3>
<p>When <span concordion:set = "#userName">Robert</span>
logs in the system, a greeting "<span concordion:assertEquals = "getGreeting(#userName)">
Hello Robert!</span>" is displayed.</p>
</div>
</body>
</html>
นี่คือเนื้อหาของไฟล์ SystemFixture.java ไฟล์ -
package specs.tutorialspoint;
import com.tutorialspoint.System;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public String getGreeting(String userName){
return system.getGreeting(userName);
}
}
นี่คือเนื้อหาของไฟล์ concordion.css ไฟล์ -
* {
font-family: Arial;
}
body {
padding: 32px;
}
pre {
padding: 6px 28px 6px 28px;
background-color: #E8EEF7;
}
pre, pre *, code, code *, kbd {
font-family: Courier New, Courier;
font-size: 10pt;
}
h1, h1 * {
font-size: 24pt;
}
p, td, th, li, .breadcrumbs {
font-size: 10pt;
}
p, li {
line-height: 140%;
}
table {
border-collapse: collapse;
empty-cells: show;
margin: 8px 0px 8px 0px;
}
th, td {
border: 1px solid black;
padding: 3px;
}
td {
background-color: white;
vertical-align: top;
}
th {
background-color: #C3D9FF;
}
li {
margin-top: 6px;
margin-bottom: 6px;
}
.example {
padding: 6px 16px 6px 16px;
border: 1px solid #D7D7D7;
margin: 6px 0px 28px 0px;
background-color: #F7F7F7;
}
.example h3 {
margin-top: 8px;
margin-bottom: 8px;
font-size: 12pt;
}
.special {
font-style: italic;
}
.idea {
font-size: 9pt;
color: #888;
font-style: italic;
}
.tight li {
margin-top: 1px;
margin-bottom: 1px;
}
.commentary {
float: right;
width: 200px;
background-color: #ffffd0;
padding:8px;
border: 3px solid #eeeeb0;
margin: 10px 0px 10px 10px;
}
.commentary, .commentary * {
font-size: 8pt;
}
มีประเด็นสำคัญสองประการที่ควรทราบเกี่ยวกับไฟล์ html ข้อมูลจำเพาะและ Test Fixture -
System.html เป็นไฟล์ html ข้อมูลจำเพาะที่ใช้เนมสเปซคอนคอร์เดียน
<html xmlns:concordion="http://www.concordion.org/2007/concordion">
System.html ใช้คำสั่ง concordion: set เพื่อกำหนดค่าของตัวแปรชั่วคราว userName เป็น Robert ที่นี่ userName คือพารามิเตอร์ที่จะส่งผ่านไปยังเมธอด getGreeting ของ System fixture
When <span concordion:set="#userName">Robert</span> logs in the system
System.html ใช้คำสั่ง concordion: assertEquals เพื่อตรวจสอบผลลัพธ์ของฟังก์ชัน getGreeting (userName) ให้เป็น Hello Robert!
a greeting "<span concordion:assertEquals="getGreeting(#userName)">
Hello Robert!</span>" is displayed.
SystemFixture เป็นฟิกซ์เจอร์ทดสอบ JUnit ที่มีคำอธิบายประกอบกับ ConcordionRunner.class
@RunWith(ConcordionRunner.class)
public class SystemFixture {
SystemFixture มีเมธอด getGreeting ที่ส่งกลับคำทักทายไปยังผู้ใช้
public String getGreeting(String userName){
return system.getGreeting(userName);
}
ขั้นตอนที่ 5 - เรียกใช้โปรแกรม
คลิกขวาที่พื้นที่เนื้อหาของ SystemFixture แล้วเลือก Run as > JUnit Test Case. คุณจะเห็นผลลัพธ์ต่อไปนี้พร้อมกับความสำเร็จของจูนิท
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 0
System.html คือผลลัพธ์ของการทดสอบ Concordion
ขอแสดงความยินดีคุณได้สร้างการทดสอบการยอมรับ Concordion ครั้งแรกสำเร็จแล้ว นอกจากนี้ให้เราเริ่มทำสิ่งที่น่าสนใจยิ่งขึ้นในสองสามบทถัดไป
Concordion - ตั้งค่า Command
คำสั่ง Concordion set ใช้เพื่อเก็บตัวแปรชั่วคราวที่สามารถใช้ในคำสั่ง Concordion อื่น ๆ
พิจารณาข้อกำหนดต่อไปนี้ -
The Sum of two numbers 2 and 3 will be 5.
หากเราต้องการให้ตัวเลข 2 และ 3 เป็นพารามิเตอร์และส่งต่อไปยังฟังก์ชัน sum เป็นพารามิเตอร์เพื่อให้สามารถตรวจสอบกับผลลัพธ์ที่ระบบส่งคืนมาได้เราสามารถใช้ concordion: set command ภายในแท็กช่วงรอบ ๆ ตัวเลข
<p>The Sum of two numbers <span concordion:set = "#firstNumber">2</span>
and <span concordion:set = "#secondNumber">3</span> will be
<span concordion:assertEquals = "sum(#firstNumber, #secondNumber)">5
</span>.</p>
เมื่อ Concordion แยกวิเคราะห์เอกสารจะตั้งค่าตัวแปรชั่วคราว #firstNumber เป็นค่า "2" และ #secondNumber เป็นค่า "3" จากนั้นเรียกวิธี sum () ด้วยพารามิเตอร์เป็น #firstNumber และ #secondNumber และตรวจสอบว่า ผลลัพธ์เท่ากับ "5"
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อที่สอดคล้องกันและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มต้องห้องสมุด Concordion ใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้าง Java class Systemภายใต้แพ็กเกจcom.tutorialspoint |
4 | สร้างคลาส Fixture SystemFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างข้อมูลจำเพาะ html System.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
6 | ขั้นตอนสุดท้ายคือการสร้างเนื้อหาของไฟล์ Java และไฟล์เฉพาะและเรียกใช้แอปพลิเคชันตามที่อธิบายด้านล่าง |
นี่คือเนื้อหาของไฟล์ System.java -
package com.tutorialspoint;
public class System {
public int sum(int firstNumber, int secondNumber) {
return firstNumber + secondNumber;
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ 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 int sum(int firstNumber, int secondNumber) {
return system.sum(firstNumber, secondNumber);
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ System.html -
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type = "text/css" />
</head>
<body>
<h1>Calculator Specifications</h1>
<p>We are building online calculator support in our website.</p>
<p>Following is the requirement to add two numbers:</p>
<div class = "example">
<h3>Example</h3>
<p>The Sum of two numbers <span concordion:set = "#firstNumber">2</span>
and <span concordion:set = "#secondNumber">3</span> will be
<span concordion:execute = "#result = sum(#firstNumber, #secondNumber)"></span>
<span concordion:assertEquals = "#result">5</span>.</p>
</div>
</body>
</html>
เมื่อคุณสร้างไฟล์ซอร์สและไฟล์ข้อมูลจำเพาะเสร็จแล้วให้เรารันแอพพลิเคชั่นเป็นการทดสอบ JUnit หากทุกอย่างเรียบร้อยกับแอปพลิเคชันของคุณแอปพลิเคชันของคุณจะให้ผลลัพธ์ดังต่อไปนี้ -
C:\DOCUME>1\ADMINI>1\LOCALS>1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 0
System.html เป็นผลลัพธ์ของการทดสอบการทำงานร่วมกัน
Concordion - ยืนยันคำสั่ง Equals
คำสั่ง Concordion assertEquals ใช้เพื่อตรวจสอบคุณสมบัติ Java bean หรือผลลัพธ์ของวิธีการเทียบกับค่าที่ระบุ
พิจารณาข้อกำหนดต่อไปนี้ -
The sum of two numbers 2 and 3 will be 5.
หากเราต้องการให้ตัวเลข 2 และ 3 เป็นพารามิเตอร์และส่งผ่านไปยังฟังก์ชัน sum เป็นพารามิเตอร์เพื่อให้สามารถตรวจสอบกับผลลัพธ์ที่ระบบส่งคืน 5 เราสามารถใช้คำสั่ง concordion: assertEquals ภายในแท็กสแปนรอบ ๆ ฟังก์ชัน sum .
<p>The Sum of two numbers <span concordion:set="#firstNumber">2</span>
and <span concordion:set="#secondNumber">3</span> will be
<span concordion:assertEquals="sum(#firstNumber, #secondNumber)">5</span>.</p>
เมื่อ Concordion แยกวิเคราะห์เอกสารจะตั้งค่าตัวแปรชั่วคราว #firstNumber เป็นค่า "2" และ #secondNumber เป็นค่า "3" โดยใช้คำสั่ง set จากนั้นเรียกวิธี sum () ด้วยพารามิเตอร์เป็น #firstNumber และ #secondNumber และตรวจสอบว่าผลลัพธ์เท่ากับ "5" โดยใช้คำสั่ง assertEquals
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนต่อไปนี้เพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อที่สอดคล้องกันและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มห้องสมุด Concordion ต้องใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้าง Java class Systemภายใต้แพ็กเกจcom.tutorialspoint |
4 | สร้างคลาส Fixture SystemFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างข้อมูลจำเพาะ html System.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
6 | ขั้นตอนสุดท้ายคือการสร้างเนื้อหาของไฟล์ Java และไฟล์เฉพาะและเรียกใช้แอปพลิเคชันตามที่อธิบายด้านล่าง |
นี่คือเนื้อหาของไฟล์ System.java -
package com.tutorialspoint;
public class System {
public int sum(int firstNumber, int secondNumber) {
return firstNumber + secondNumber;
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ 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 int sum(int firstNumber, int secondNumber) {
return system.sum(firstNumber, secondNumber);
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ System.html -
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type = "text/css" />
</head>
<body>
<h1>Calculator Specifications</h1>
<p>We are building online calculator support in our website.</p>
<p>Following is the requirement to add two numbers:</p>
<div class = "example">
<h3>Example</h3>
<p>The Sum of two numbers <span concordion:set = "#firstNumber">2</span>
and <span concordion:set = "#secondNumber">3</span> will be
<span concordion:assertEquals = "sum(#firstNumber, #secondNumber)">5</span>.</p>
</div>
</body>
</html>
เมื่อคุณสร้างไฟล์ซอร์สและไฟล์ข้อมูลจำเพาะเสร็จแล้วให้เรารันแอพพลิเคชั่นเป็น JUnit Test หากทุกอย่างเรียบร้อยกับแอปพลิเคชันของคุณมันจะแสดงผลลัพธ์ต่อไปนี้ -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 0
System.html คือผลลัพธ์ของการทดสอบ Concordion
ความสำเร็จ: 1, ความล้มเหลว: 0
Concordion - ยืนยันคำสั่งที่แท้จริง
คำสั่ง Concordion assertTrue ถูกใช้เมื่อฟิกซ์เจอร์ต้องการทราบผลลัพธ์ที่คาดหวังเพื่อทำการทดสอบ
พิจารณาข้อกำหนดต่อไปนี้ -
User Name : Robert De
The User name starts with R.
The User name starts with S == false.
หากเราต้องการให้ทำการทดสอบกับ User Name และตรวจสอบว่าชื่อผู้ใช้ขึ้นต้นด้วย R หรือไม่
<p>User Name :<span concordion:set = "#userName">Robert De</span></p>
<p>The User name <span concordion:assertTrue = "#userName.startsWith(#letter)">starts
with <b concordion:set = "#letter">R</b></span>.</p>
<p>The User name <span concordion:assertTrue = "#userName.startsWith(#letter)">starts
with <b concordion:set = "#letter">S</b></span>.</p>
เมื่อ Concordion แยกวิเคราะห์เอกสารจะตั้งค่าตัวแปรชั่วคราว #userName เป็นค่า "Robert De" จากนั้นจะตรวจสอบว่า userName ขึ้นต้นด้วยตัวอักษรที่ระบุโดยตัวแปร #letter ที่ตั้งค่าในคำสั่งถัดไปหรือไม่
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อที่สอดคล้องกันและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มต้องห้องสมุด Concordion ใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้าง Java class Systemภายใต้แพ็กเกจcom.tutorialspoint |
4 | สร้างคลาส Fixture SystemFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างข้อมูลจำเพาะ html System.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
6 | ขั้นตอนสุดท้ายคือการสร้างเนื้อหาของไฟล์ Java และไฟล์ข้อมูลจำเพาะทั้งหมดและเรียกใช้แอปพลิเคชันตามที่อธิบายด้านล่าง |
นี่คือเนื้อหาของไฟล์ System.java -
package com.tutorialspoint;
public class System {
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ 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>
<p>User Name :<span concordion:set = "#userName">Robert De</span></p>
<p>The User name <span concordion:assertTrue = "#userName.startsWith(#letter)">starts
with <b concordion:set = "#letter">R</b></span>.</p>
<p>The User name <span concordion:assertTrue = "#userName.startsWith(#letter)">starts
with <b concordion:set = "#letter">S</b></span>.</p>
</div>
</body>
</html>
เมื่อคุณสร้างไฟล์ซอร์สและไฟล์ข้อมูลจำเพาะเสร็จแล้วให้เรารันแอพพลิเคชั่นเป็น JUnit Test หากทุกอย่างเรียบร้อยดีกับแอปพลิเคชันของคุณมันจะให้ผลลัพธ์ดังต่อไปนี้ -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 1
System.html คือผลลัพธ์ของการทดสอบ Concordion
Concordion - assertFalse Command
คำสั่ง Concordion assertFalse ใช้เมื่อฟิกซ์เจอร์ต้องการทราบผลลัพธ์ที่คาดหวังเพื่อทำการทดสอบ
พิจารณาข้อกำหนดต่อไปนี้ -
User Name : Robert De
The User name does not start with S.
หากเราต้องการให้ทำการทดสอบกับ User Name และตรวจสอบว่าชื่อผู้ใช้ไม่ได้ขึ้นต้นด้วย S
<p>User Name :<span concordion:set = "#userName">Robert De</span></p>
<p>The User name <span concordion:assertFalse = "#userName.startsWith(#letter)">does not start
with <b concordion:set = "#letter">S</b></span>.</p>
เมื่อ Concordion แยกวิเคราะห์เอกสารจะตั้งค่าตัวแปรชั่วคราว #userName เป็นค่า "Robert De" จากนั้นจะตรวจสอบว่า userName ขึ้นต้นด้วยตัวอักษรที่ระบุโดยตัวแปร #letter ที่ตั้งค่าในคำสั่งถัดไปหรือไม่
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อที่สอดคล้องกันและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มต้องห้องสมุด Concordion ใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้าง Java class Systemภายใต้แพ็กเกจcom.tutorialspoint |
4 | สร้างคลาส Fixture SystemFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างข้อมูลจำเพาะ html System.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
6 | ขั้นตอนสุดท้ายคือการสร้างเนื้อหาของไฟล์ Java และไฟล์ข้อมูลจำเพาะทั้งหมดและเรียกใช้แอปพลิเคชันตามที่อธิบายด้านล่าง |
นี่คือเนื้อหาของไฟล์ System.java -
package com.tutorialspoint;
public class System {
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ 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>
<p>User Name :<span concordion:set = "#userName">Robert De</span></p>
<p>The User name <span concordion:assertFalse = "#userName.startsWith(#letter)">
does not start with <b concordion:set = "#letter">
S</b></span>.</p>
</div>
</body>
</html>
เมื่อคุณสร้างไฟล์ซอร์สและไฟล์ข้อมูลจำเพาะเสร็จแล้วให้เรารันแอพพลิเคชั่นเป็น JUnit Test หากทุกอย่างเรียบร้อยดีกับแอปพลิเคชันของคุณมันจะให้ผลลัพธ์ดังต่อไปนี้ -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 0
System.html คือผลลัพธ์ของการทดสอบ Concordion
Concordion - ดำเนินการคำสั่ง
ใช้คำสั่ง Concordion execute รันการทำงานของ concordion fixture พิจารณาข้อกำหนดต่อไปนี้ -
The sum of two numbers 2 and 3 will be 5.
หากเราต้องการเขียนข้อมูลจำเพาะสำหรับฟังก์ชัน sum ซึ่งจะยอมรับตัวเลขสองตัวและแสดงผลรวมของมันข้อกำหนดจะเป็นดังนี้ -
<p>The Sum of two numbers <span concordion:set = "#firstNumber">2</span> and
<span concordion:set = "#secondNumber">3</span> will be
<span concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
</span><span concordion:assertEquals = "#result">5</span>.</p>
เมื่อ Concordion แยกวิเคราะห์เอกสารจะตั้งค่าตัวแปรชั่วคราว #firstNumber เป็นค่า "2" และ #secondNumber เป็นค่า "3" จากนั้นเรียกใช้เมธอด sum () ด้วยพารามิเตอร์เป็น #firstNumber และ #secondNumber โดยใช้การดำเนินการ คำสั่งและตั้งค่าผลลัพธ์เป็นตัวแปร #result และตรวจสอบว่าตัวแปร #result เท่ากับ "5"
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อที่สอดคล้องกันและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มห้องสมุด Concordion ต้องใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้าง Java class Systemภายใต้แพ็กเกจcom.tutorialspoint |
4 | สร้างคลาส Fixture SystemFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างข้อมูลจำเพาะ html System.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
6 | ขั้นตอนสุดท้ายคือการสร้างเนื้อหาของไฟล์ Java และไฟล์ข้อมูลจำเพาะทั้งหมดและเรียกใช้แอปพลิเคชันตามที่อธิบายด้านล่าง |
นี่คือเนื้อหาของไฟล์ System.java -
package com.tutorialspoint;
public class System {
public int sum(int firstNumber, int secondNumber) {
return firstNumber + secondNumber;
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ 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 int sum(int firstNumber, int secondNumber) {
return system.sum(firstNumber, secondNumber);
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ System.html -
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type = "text/css" />
</head>
<body>
<h1>Calculator Specifications</h1>
<p>We are building online calculator support in our website.</p>
<p>Following is the requirement to add two numbers:</p>
<div class = "example">
<h3>Example</h3>
<p>The Sum of two numbers <span concordion:set = "#firstNumber">2</span>
and <span concordion:set = "#secondNumber">3</span> will be
<span concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
</span><span concordion:assertEquals = "#result">5</span>.</p>
</div>
</body>
</html>
เมื่อคุณสร้างไฟล์ซอร์สและไฟล์ข้อมูลจำเพาะเสร็จแล้วให้เรารันแอพพลิเคชั่นเป็น JUnit Test หากทุกอย่างเรียบร้อยดีกับแอปพลิเคชันของคุณมันจะให้ผลลัพธ์ดังต่อไปนี้ -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 0
System.html คือผลลัพธ์ของการทดสอบ Concordion
Concordion - การส่งคืนวัตถุ
คำสั่ง Concordion execute สามารถใช้เพื่อให้ได้ผลลัพธ์ของพฤติกรรมในรูปแบบของอ็อบเจ็กต์โดยใช้ซึ่งเราจะได้ผลลัพธ์หลายอย่างของพฤติกรรม ตัวอย่างเช่นพิจารณาข้อกำหนดต่อไปนี้ -
The full name Robert De is to be broken into first name Robert and last name De.
ในที่นี้เราจำเป็นต้องมีฟังก์ชันแยกซึ่งยอมรับชื่อผู้ใช้และส่งคืนอ็อบเจ็กต์ผลลัพธ์ที่มีชื่อและนามสกุลเป็นคุณสมบัติเพื่อให้เราสามารถใช้งานได้
หากเราต้องการเขียนข้อมูลจำเพาะสำหรับฟังก์ชันแยกดังกล่าวซึ่งจะคาดหวังชื่อผู้ใช้และส่งออกวัตถุผลลัพธ์สิ่งต่อไปนี้จะเป็นข้อกำหนด -
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert
De</span> is to be broken into first name
<span concordion:assertEquals = "#result.firstName">Robert</span> and last name
<span concordion:assertEquals = "#result.lastName">De</span>.</p>
เมื่อ Concordion แยกวิเคราะห์เอกสารจะกำหนดค่าของตัวแปรพิเศษ #TEXT เป็นค่าขององค์ประกอบปัจจุบันเป็น "Robert De" และส่งต่อไปยังฟังก์ชันแยก จากนั้นจะรันเมธอด split () ด้วยพารามิเตอร์เป็น #TEXT โดยใช้คำสั่ง execute และตั้งค่าผลลัพธ์เป็นตัวแปร #result และใช้อ็อบเจกต์ผลลัพธ์พิมพ์คุณสมบัติ firstName และ lastName เป็นเอาต์พุต
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อconcordionและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มต้องห้องสมุด Concordion ใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้างคลาส Java ระบบ , ผลภายใต้com.tutorialspointแพคเกจ |
4 | สร้างคลาส Fixture SystemFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างข้อมูลจำเพาะ html System.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
6 | ขั้นตอนสุดท้ายคือการสร้างเนื้อหาของไฟล์ Java และไฟล์ข้อมูลจำเพาะทั้งหมดและเรียกใช้แอปพลิเคชันตามที่อธิบายด้านล่าง |
นี่คือเนื้อหาของไฟล์ Result.java -
package com.tutorialspoint;
public class Result {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
นี่คือเนื้อหาของไฟล์ System.java -
package com.tutorialspoint;
public class System {
public Result split(String userName){
Result result = new Result();
String[] words = userName.split(" ");
result.setFirstName(words[0]);
result.setLastName(words[1]);
return result;
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ SystemFixture.java−
package specs.tutorialspoint;
import com.tutorialspoint.Result;
import com.tutorialspoint.System;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public Result 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>
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert
De</span> is to be broken into first name <span
concordion:assertEquals = "#result.firstName">Robert</span> and last name <span
concordion:assertEquals = "#result.lastName">De</span>.</p>
</div>
</body>
</html>
เมื่อคุณสร้างไฟล์ซอร์สและไฟล์ข้อมูลจำเพาะเสร็จแล้วให้เรารันแอพพลิเคชั่นเป็น JUnit Test หากทุกอย่างเรียบร้อยดีกับแอปพลิเคชันของคุณมันจะให้ผลลัพธ์ดังต่อไปนี้ -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 0
System.html คือผลลัพธ์ของการทดสอบ Concordion
Concordion - แผนที่เดินทางกลับ
คำสั่ง Concordion execute สามารถใช้เพื่อให้ได้ผลลัพธ์ของพฤติกรรมในรูปแบบของแผนที่โดยใช้ซึ่งเราจะได้ผลลัพธ์หลายอย่างของพฤติกรรม ตัวอย่างเช่นพิจารณาข้อกำหนดต่อไปนี้ -
The full name Robert De is to be broken into its first name Robert and last name De.
ที่นี่เราจำเป็นต้องมีฟังก์ชัน spilled ซึ่งยอมรับชื่อผู้ใช้และส่งคืนอ็อบเจ็กต์แผนที่ที่มี firstName และ lastName เป็นคีย์ที่มีค่าที่สอดคล้องกันเพื่อให้เราสามารถใช้งานได้
หากเราต้องการเขียนข้อกำหนดสำหรับฟังก์ชันแยกดังกล่าวซึ่งจะยอมรับชื่อผู้ใช้และส่งออกวัตถุผลลัพธ์ต่อไปนี้จะเป็นข้อกำหนด -
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert
De</span> is to be broken into first name <span
concordion:assertEquals = "#result.firstName">Robert</span> and last name <span
concordion:assertEquals = "#result.lastName">De</span>.</p>
เมื่อ Concordion แยกวิเคราะห์เอกสารจะกำหนดค่าของตัวแปรพิเศษ #TEXT เป็นค่าขององค์ประกอบปัจจุบันเป็น "Robert De" และส่งต่อไปยังฟังก์ชันแยก จากนั้นจะรันเมธอด split () ด้วยพารามิเตอร์เป็น #TEXT โดยใช้คำสั่ง execute และตั้งค่าผลลัพธ์เป็นตัวแปร #result และใช้แมปผลลัพธ์พิมพ์ค่า firstName และ lastName เป็นเอาต์พุต
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อที่สอดคล้องกันและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มต้องห้องสมุด Concordion ใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้าง Java class Systemภายใต้แพ็กเกจcom.tutorialspoint |
4 | สร้างคลาส Fixture SystemFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างข้อมูลจำเพาะ html System.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
6 | ขั้นตอนสุดท้ายคือการสร้างเนื้อหาของไฟล์ Java และไฟล์ข้อมูลจำเพาะทั้งหมดและเรียกใช้แอปพลิเคชันตามที่อธิบายด้านล่าง |
นี่คือเนื้อหาของไฟล์ System.java -
package com.tutorialspoint;
import java.util.HashMap;
import java.util.Map;
public class System {
public Map split(String userName){
Map<String, String> result = new HashMap<String, String>();
String[] words = userName.split(" ");
result.put("firstName", words[0]);
result.put("lastName", words[1]);
return result;
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ SystemFixture.java -
package specs.tutorialspoint;
import java.util.Map;
import com.tutorialspoint.Result;
import com.tutorialspoint.System;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public Map<String, String> 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>
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert
De</span> is to be broken into first name <span
concordion:assertEquals = "#result.firstName">Robert</span> and last name
<span concordion:assertEquals = "#result.lastName">De</span>.</p>
</div>
</body>
</html>
เมื่อคุณสร้างไฟล์ซอร์สและไฟล์ข้อมูลจำเพาะเสร็จแล้วให้เรารันแอพพลิเคชั่นเป็น JUnit Test หากทุกอย่างเรียบร้อยดีกับแอปพลิเคชันของคุณมันจะให้ผลลัพธ์ดังต่อไปนี้ -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 0
System.html คือผลลัพธ์ของการทดสอบ Concordion
Concordion - การคืนค่า MultiValueResult
คำสั่ง Concordion execute สามารถใช้เพื่อให้ได้ผลลัพธ์ของพฤติกรรมในรูปแบบของแผนที่โดยใช้ซึ่งเราจะได้ผลลัพธ์หลายอย่างของพฤติกรรม ตัวอย่างเช่นพิจารณาข้อกำหนดต่อไปนี้ -
The full name Robert De is to be broken into its first name Robert and last name De.
ที่นี่เราจำเป็นต้องมีฟังก์ชันแยกซึ่งยอมรับชื่อผู้ใช้และส่งคืนวัตถุแผนที่ที่มี firstName และ lastName เป็นคีย์พร้อมค่าที่สอดคล้องกันเพื่อให้เราสามารถใช้งานได้
หากเราต้องการเขียนข้อกำหนดสำหรับฟังก์ชันแยกดังกล่าวซึ่งจะยอมรับชื่อผู้ใช้และส่งออกวัตถุผลลัพธ์ข้อกำหนดจะเป็นดังนี้ -
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert
De</span> is to be broken into first name
<span concordion:assertEquals = "#result.firstName">Robert</span> and last name
<span concordion:assertEquals = "#result.lastName">De</span>.</p>
เมื่อ Concordion แยกวิเคราะห์เอกสารจะกำหนดค่าของตัวแปรพิเศษ #TEXT เป็นค่าขององค์ประกอบปัจจุบันเป็น "Robert De" และส่งต่อไปยังฟังก์ชันแยก จากนั้นจะเรียกใช้เมธอด split () ด้วยพารามิเตอร์เป็น #TEXT โดยใช้คำสั่ง execute และตั้งค่าผลลัพธ์เป็นตัวแปร #result และใช้แมปผลลัพธ์พิมพ์ค่า firstName และ lastName เป็นเอาต์พุต
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อconcordionและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มต้องห้องสมุด Concordion ใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้าง Java class Systemภายใต้แพ็กเกจcom.tutorialspoint |
4 | สร้างคลาส Fixture SystemFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างข้อมูลจำเพาะ html System.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
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>
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert De</span>
is to be broken into first name <span
concordion:assertEquals = "#result.firstName">Robert</span> and last name <span
concordion:assertEquals = "#result.lastName">De</span>.</p>
</div>
</body>
</html>
เมื่อคุณสร้างไฟล์ซอร์สและไฟล์ข้อมูลจำเพาะเสร็จแล้วให้เรารันแอพพลิเคชั่นเป็น JUnit Test หากทุกอย่างเรียบร้อยดีกับแอปพลิเคชันของคุณมันจะให้ผลลัพธ์ดังต่อไปนี้ -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 2, Failures: 0
System.html คือผลลัพธ์ของการทดสอบ Concordion
Concordion - ดำเนินการบนโต๊ะ
คำสั่ง Concordion execute สามารถใช้เพื่อรันการทำงานของ concordion fixture ในลักษณะการทำซ้ำ ตัวอย่างเช่นจะมีประโยชน์หากเราต้องการแสดงความต้องการพร้อมตัวอย่างหลาย ๆ ตัวอย่างในรูปแบบตาราง
พิจารณาข้อกำหนดต่อไปนี้ -
<table>
<tr><th>First Number</th><th>Second Number</th><th>Sum</th></tr>
<tr><td>2</td><td>3</td><td>5</td></tr>
<tr><td>4</td><td>5</td><td>9</td></tr>
</table>
หากเราต้องการเขียนข้อมูลจำเพาะสำหรับฟังก์ชัน sum ซึ่งจะยอมรับตัวเลขสองตัวและส่งออกผลรวมของมันข้อกำหนดจะเป็นดังนี้ -
<table>
<tr><th>First Number</th><th>Second Number</th><th>Sum</th></tr>
<tr concordion:execute = "#result = sum(#fullName)">
<td concordion:set = "#firstNumber">2</td>
<td concordion:set = "#secondNumber">3</td>
<td concordion:assertEquals = "#result">5</td>
</tr>
<tr concordion:execute = "#result = sum(#fullName)">
<td concordion:set = "#firstNumber">4</td>
<td concordion:set = "#secondNumber">5</td>
<td concordion:assertEquals = "#result">9</td>
</tr>
</table>
เมื่อ Concordion แยกวิเคราะห์เอกสารจะตั้งค่าตัวแปรชั่วคราว #firstNumber เป็นค่า "2" และ #secondNumber เป็นค่า "3" จากนั้นจะเรียกใช้เมธอด sum () ด้วยพารามิเตอร์เป็น #firstNumber และ #secondNumber โดยใช้คำสั่ง execute และตั้งค่าผลลัพธ์เป็นตัวแปร #result และตรวจสอบว่าตัวแปร #result เท่ากับ "5" กระบวนการนี้ซ้ำสำหรับแต่ละองค์ประกอบแถวของตาราง
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อที่สอดคล้องกันและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มห้องสมุด Concordion ต้องใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้าง Java class Systemภายใต้แพ็กเกจcom.tutorialspoint |
4 | สร้างคลาส Fixture SystemFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างข้อมูลจำเพาะ html System.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
6 | ขั้นตอนสุดท้ายคือการสร้างเนื้อหาของไฟล์ Java และไฟล์ข้อมูลจำเพาะทั้งหมดและเรียกใช้แอปพลิเคชันตามที่อธิบายด้านล่าง |
นี่คือเนื้อหาของไฟล์ System.java -
package com.tutorialspoint;
public class System {
public int sum(int firstNumber, int secondNumber) {
return firstNumber + secondNumber;
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ 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 int sum(int firstNumber, int secondNumber) {
return system.sum(firstNumber, secondNumber);
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ System.html -
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type = "text/css" />
</head>
<body>
<h1>Calculator Specifications</h1>
<p>We are building online calculator support in our website.</p>
<p>Following is the requirement to add two numbers:</p>
<div class = "example">
<h3>Example</h3>
<table>
<tr>
<th>First Number</th>
<th>Second Number</th>
<th>Sum</th>
</tr>
<tr concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
<td concordion:set = "#firstNumber">2</td>
<td concordion:set = "#secondNumber">3</td>
<td concordion:assertEquals = "#result">5</td>
</tr>
<tr concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
<td concordion:set = "#firstNumber">4</td>
<td concordion:set = "#secondNumber">5</td>
<td concordion:assertEquals = "#result">9</td>
</tr>
</table>
</div>
</body>
</html>
เมื่อคุณสร้างไฟล์ซอร์สและไฟล์ข้อมูลจำเพาะเสร็จแล้วให้เรารันแอพพลิเคชั่นเป็น JUnit Test หากทุกอย่างเรียบร้อยดีกับแอปพลิเคชันของคุณมันจะให้ผลลัพธ์ดังต่อไปนี้ -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 2, Failures: 0
System.html คือผลลัพธ์ของการทดสอบ Concordion
Concordion - ดำเนินการในรายการ
คำสั่ง Concordion execute สามารถใช้เพื่อรันการทำงานของ concordion fixture ในลักษณะการทำซ้ำ ตัวอย่างเช่นจะมีประโยชน์หากเราต้องการแสดงความต้องการพร้อมตัวอย่างหลายรายการในรูปแบบรายการ
พิจารณาข้อกำหนดต่อไปนี้ -
<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 () ด้วยพารามิเตอร์เป็น #TEXT โดยใช้คำสั่ง execute และตั้งค่าผลลัพธ์เป็นตัวแปร #result และใช้ผลลัพธ์พิมพ์ค่า firstName และ lastName เป็นเอาต์พุต
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อที่สอดคล้องกันและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มห้องสมุด Concordion ต้องใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้าง Java class Systemภายใต้แพ็กเกจcom.tutorialspoint |
4 | สร้างคลาส Fixture SystemFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างข้อมูลจำเพาะ html System.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
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 Test หากทุกอย่างเรียบร้อยดีกับแอปพลิเคชันของคุณมันจะให้ผลลัพธ์ดังต่อไปนี้ -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 4, Failures: 0
System.html คือผลลัพธ์ของการทดสอบ Concordion
Concordion - คำสั่ง VerifyRows
คำสั่ง Concordion verificationRows สามารถใช้เพื่อตรวจสอบเนื้อหาของคอลเล็กชันที่ส่งคืนเป็นผลลัพธ์โดยระบบ ตัวอย่างเช่นหากเราตั้งค่าชุดผู้ใช้ในระบบและทำการค้นหาบางส่วนระบบควรส่งคืนองค์ประกอบที่ตรงกันมิฉะนั้นการทดสอบการยอมรับของเราจะล้มเหลว
พิจารณาข้อกำหนดต่อไปนี้ -
<table>
<tr><th>Users</th></tr>
<tr><td>Robert De</td></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
<p>Search for J should return:</p>
<table>
<tr><th>Matching Users</th></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
หากเราต้องการเขียนข้อกำหนดสำหรับฟังก์ชันการค้นหาดังกล่าวซึ่งจะค้นหาและส่งคืนคอลเลกชันข้อกำหนดจะเป็นดังนี้ -
<table concordion:execute = "addUser(#username)">
<tr><th concordion:set = "#username">Username</th></tr>
<tr><td>Robert De</td></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
<p>Search for "<b concordion:set = "#searchString">J</b>" should return:</p>
<table concordion:verifyRows = "#username : search(#searchString)">
<tr><th concordion:assertEquals = "#username">Matching Usernames</th></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
เมื่อ Concordion แยกวิเคราะห์เอกสารเอกสารจะดำเนินการ addUser () ในแต่ละแถวของตารางแรกจากนั้นตั้งค่า searchString เป็น J ถัดไป Concordion จะเรียกใช้ฟังก์ชันการค้นหาซึ่งควรส่งคืนวัตถุที่ทำซ้ำได้ด้วยลำดับการทำซ้ำที่คาดเดาได้ (เช่น รายการ, LinkedHashSet หรือ TreeSet) การตรวจสอบจะรันสำหรับแต่ละรายการของคอลเล็กชันและรันคำสั่ง assertEquals
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อที่สอดคล้องกันและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มต้องห้องสมุด Concordion ใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้าง Java class Systemภายใต้แพ็กเกจcom.tutorialspoint |
4 | สร้างคลาส Fixture SystemFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างข้อมูลจำเพาะ html System.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
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<String> users = new HashSet<String>();
public void addUser(String username) {
users.add(username);
}
public Iterable<String> search(String searchString) {
SortedSet<String> matches = new TreeSet<String>();
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<String> search(String searchString) {
return system.search(searchString);
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ 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 add a partial search capability on user names:</p>
<div class = "example">
<h3>Example</h3>
<table concordion:execute = "addUser(#username)">
<tr><th concordion:set = "#username">Username</th></tr>
<tr><td>Robert De</td></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
<p>Search for "<b concordion:set = "#searchString">J</b>" should return:</p>
<table concordion:verifyRows = "#username : search(#searchString)">
<tr><th concordion:assertEquals = "#username">Matching Usernames</th></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
</div>
</body>
</html>
เมื่อคุณสร้างไฟล์ซอร์สและไฟล์ข้อมูลจำเพาะเสร็จแล้วให้เรารันแอพพลิเคชั่นเป็น JUnit Test หากทุกอย่างเรียบร้อยดีกับแอปพลิเคชันของคุณมันจะให้ผลลัพธ์ดังต่อไปนี้ -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 2, Failures: 0
System.html คือผลลัพธ์ของการทดสอบ Concordion
Concordion - เรียกใช้คำสั่ง
คำสั่ง Concordion run สามารถใช้เพื่อเชื่อมโยงข้อกำหนดหลายอย่างเข้าด้วยกันและแสดงไว้ที่หน้ากลางหน้าเดียว คำสั่งนี้สามารถรันข้อกำหนดทั้งหมดในขณะที่แสดงพื้นหลังของลิงก์เป็นสีเขียว / แดง / เทาตามความเหมาะสม
ตอนนี้เรากำลังจะสร้างข้อกำหนดสองข้อและเชื่อมโยงเข้าด้วยกัน เราจะนำข้อกำหนดที่สร้างขึ้นในConcordion - Execute on List and Concordionมาใช้ซ้ำ- ดำเนินการในบทตารางเป็นข้อมูลจำเพาะของระบบและข้อกำหนดเครื่องคิดเลข
ตัวอย่าง
ให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน Concordion -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อที่สอดคล้องกันและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มต้องห้องสมุด Concordion ใช้เพิ่มภายนอกไหตัวเลือกตามที่อธิบายไว้ในConcordion - การใช้งานครั้งแรกในบท |
3 | สร้าง Java class Systemภายใต้แพ็กเกจcom.tutorialspoint |
4 | สร้างคลาส Fixture SystemFixture , CalculatorFixtureภายใต้แพ็คเกจspecs.tutorialspoint |
5 | สร้างไฟล์ข้อมูลจำเพาะ html System.html , Calculator.htmlภายใต้แพ็คเกจspecs.tutorialspoint |
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;
}
public int sum(int firstNumber, int secondNumber) {
return firstNumber + secondNumber;
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ 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);
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ CalculatorFixture.java -
package specs.tutorialspoint;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
import com.tutorialspoint.System;
@RunWith(ConcordionRunner.class)
public class CalculatorFixture {
System system = new System();
public int sum(int firstNumber, int secondNumber) {
return system.sum(firstNumber, secondNumber);
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ 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>
<a concordion:run = "concordion" href = "Calculator.html">
Calculator Service Specifications</a>
</body>
</html>
ต่อไปนี้เป็นเนื้อหาของไฟล์ Calculator.html -
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type = "text/css" />
</head>
<body>
<h1>Calculator Specifications</h1>
<p>We are building online calculator support in our website.</p>
<p>Following is the requirement to add two numbers:</p>
<div class = "example">
<h3>Example</h3>
<table>
<tr>
<th>First Number</th>
<th>Second Number</th>
<th>Sum</th>
</tr>
<tr concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
<td concordion:set = "#firstNumber">2</td>
<td concordion:set = "#secondNumber">3</td>
<td concordion:assertEquals = "#result">5</td>
</tr>
<tr concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
<td concordion:set = "#firstNumber">4</td>
<td concordion:set = "#secondNumber">5</td>
<td concordion:assertEquals = "#result">9</td>
</tr>
</table>
</div>
</body>
</html>
เมื่อคุณสร้างไฟล์ซอร์สและไฟล์ข้อมูลจำเพาะเสร็จแล้วให้เรารันแอพพลิเคชั่นเป็น JUnit Test หากทุกอย่างเรียบร้อยดีกับแอปพลิเคชันของคุณมันจะให้ผลลัพธ์ดังต่อไปนี้ -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 2, Failures: 0
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 6, Failures: 0
System.html คือผลลัพธ์ของการทดสอบ Concordion
คลิกที่ลิงค์ข้อกำหนดบริการเครื่องคิดเลข คุณจะเห็นผลลัพธ์ต่อไปนี้ -