ฉันกำลังทำงานในโครงการที่มีรูปแบบไฟล์ไม่กี่รูปแบบ รูปแบบบางรูปแบบถูกระบุโดย. xsds รูปแบบอื่น ๆ โดยใช้เอกสารประกอบในเว็บไซต์ที่เกี่ยวข้องและบางรูปแบบเป็นรูปแบบภายในที่กำหนดเองที่ไม่มีเอกสารประกอบ Mwahahahaha
มีปัญหาอะไร?
ฉันต้องการทดสอบตัวอ่านไฟล์ของฉัน แต่ฉันไม่แน่ใจว่าจะทำสิ่งนี้ได้อย่างไร การไหลของแอพลิเคชันเป็นเช่นนี้:
file.___ ===> read by FileReader.java ===> which creates a Model object
ที่FileReader
อินเตอร์เฟซอยู่
public interface FileReader {
public Model read(String filename);
}
กระบวนการModel
มีจำนวนของคุณสมบัติที่บรรจุเมื่ออ่านไฟล์ มันดูเหมือนอะไร
public class Model {
List<String> as;
List<String> bs;
boolean isAPain = true;
// ...
}
ฉันลองทำอะไร
ความคิดเดียวของฉันคือการสร้าง "กำเนิด" ไฟล์สำหรับแต่ละรูปแบบไฟล์ เครื่องกำเนิดไฟฟ้าเหล่านี้โดยทั่วไปจะเป็นผู้สร้างซึ่งใช้ตัวแปรเพียงไม่กี่ตัว (เช่นจำนวนความคิดเห็นที่จะสร้างในไฟล์) และเอาท์พุทไฟล์ตัวอย่างที่ฉันอ่านแล้วเปรียบเทียบผลลัพธ์ที่ได้Model
จากตัวแปรที่ฉันใช้ในการสร้างไฟล์
สิ่งนี้มีปัญหาเล็กน้อยแม้ว่า:
- แฟ้มที่จะสร้างไม่ได้มองเช่นไฟล์จริง เครื่องกำเนิดไฟฟ้าไม่ได้ตระหนักถึงบริบท
- เป็นการยากที่จะทราบว่าตัวกำเนิดสร้างขึ้นสำหรับเคสแบบขอบหรือไม่เนื่องจากฉันเป็นผู้ตั้งค่าตัวแปรเอง วิธีนี้แทบจะดีกว่าที่ฉันสร้างไฟล์ตัวอย่างโหล
มีวิธีที่ดีกว่าในการทำเช่นนี้?
แก้ไข: เปลี่ยนหน่วยเป็นการรวมเนื่องจากนั่นคือสิ่งที่ฉันหมายถึงจริง
แก้ไข 2: นี่คือตัวอย่างของกรณีขอบที่ฉันกล่าวถึง
แต่ละไฟล์แสดงกราฟที่ประกอบด้วยจุดยอดและขอบ จุดยอดและขอบเหล่านี้สามารถติดได้หลายวิธีดังนั้น:
v1 -- e1 --> v2 <-- e2 -- v3
แตกต่างจาก
v1 -- e1 --> v2 -- e2 --> v3
ในทิศทางของขอบนั้นสำคัญ ฉันไม่แน่ใจว่าสิ่งนี้อยู่ในขอบเขตของคำถามหรือไม่ แต่เป็นการยากที่จะคิดถึงกรณีขอบที่เกี่ยวข้องทั้งหมดเมื่อฉันตั้งค่าจำนวนจุดยอดจำนวนขอบและสร้างการเชื่อมต่อแบบสุ่มด้วยตนเอง
FileReader
การนำไปใช้จริง) ตัวอย่าง: กำหนดกรณีขอบที่พบในรูปแบบไฟล์ภาพสำหรับแต่ละรายการในตารางหากสนับสนุนคุณสมบัติการรวมกันของแถว / คอลัมน์ควรมีอย่างน้อยหนึ่งกรณีทดสอบ (ไฟล์ข้อมูล) ที่ครอบคลุมชุดค่าผสมนั้น