Tôi đang làm việc trên một dự án với một vài định dạng tập tin. Một số định dạng được chỉ định bởi .xsds, một số định dạng khác bằng tài liệu trên các trang web tương ứng của chúng và một số định dạng tùy chỉnh trong nhà không có tài liệu. Mwahahahaha.
Có vấn đề gì vậy?
Tôi muốn kiểm tra trình đọc tệp của mình, nhưng tôi không hoàn toàn chắc chắn về cách thực hiện việc này. Dòng chảy của ứng dụng là như vậy:
file.___ ===> read by FileReader.java ===> which creates a Model object
FileReader
giao diện ở đâu
public interface FileReader {
public Model read(String filename);
}
Có Model
một số thuộc tính được điền khi tệp được đọc. Nó trông giống như
public class Model {
List<String> as;
List<String> bs;
boolean isAPain = true;
// ...
}
Tôi đã thử những gì?
Ý tưởng duy nhất của tôi là tạo tập tin "trình tạo" cho mỗi định dạng tệp. Các trình tạo này về cơ bản là các trình xây dựng có một vài biến số (ví dụ: số lượng bình luận để tạo trong một tệp) và xuất ra một tệp mẫu mà sau đó tôi đọc và so sánh kết quả Model
với các biến tôi đã sử dụng để tạo tệp ban đầu.
Điều này có một vài vấn đề, mặc dù:
- Các tệp mà nó tạo ra trông không giống như các tệp thực. Các máy phát điện là không có cách nào nhận thức được bối cảnh.
- Thật khó để nhận ra nếu trình tạo đã được tạo cho các trường hợp cạnh vì tôi là người đặt thủ công các biến. Phương pháp này hầu như không tốt hơn tôi tạo ra một tá tệp mẫu.
Có cách nào tốt hơn để làm điều này?
EDIT: Thay đổi đơn vị để tích hợp vì đó là những gì tôi thực sự có nghĩa.
EDIT2: Đây là một ví dụ về các trường hợp cạnh tôi đã đề cập.
Mỗi tệp đại diện cho một biểu đồ được tạo thành từ các đỉnh và cạnh. Các đỉnh và cạnh này có thể được gắn theo các cách khác nhau, vì vậy:
v1 -- e1 --> v2 <-- e2 -- v3
la khac nhau tư
v1 -- e1 --> v2 -- e2 --> v3
trong đó hướng của các cạnh quan trọng. Tôi không chắc đây có nằm trong phạm vi của câu hỏi không, nhưng thật khó để nghĩ ra tất cả các trường hợp cạnh thích hợp khi tôi đặt thủ công số đỉnh, số cạnh và chỉ tạo ngẫu nhiên các kết nối.
FileReader
hiện thực tế ) không? Ví dụ: được đưa ra các trường hợp cạnh được tìm thấy trong các định dạng tệp hình ảnh , cho mỗi mục nhập bảng, nếu kết hợp các thuộc tính hàng / cột được hỗ trợ, cần có ít nhất một trường hợp thử nghiệm (tệp dữ liệu) bao gồm kết hợp đó.