Tôi không chắc chắn về các khuôn khổ cụ thể, nhưng cách tiếp cận chung về OOP là viết một số lớp trừu tượng lên trên bất kỳ mã truy cập tệp nào (giao diện rất nhiều!) và có lẽ là một mặt tiền để dễ sử dụng các hoạt động thông thường. sau đó bạn chỉ mô phỏng một lớp bên dưới mã bạn đang thử nghiệm và về cơ bản nó là một hệ thống tệp giả mạo (hoặc ít nhất là mã bạn đang thử nghiệm sẽ không biết).
nếu bạn xem xét việc sử dụng khung phụ thuộc để xử lý điều này cho bạn, nó sẽ dễ dàng chuyển đổi các thành phần để triển khai giả mạo một giao diện. nếu bạn tuân theo các mẫu điều khiển nghịch đảo, việc chuyển bất kỳ phần phụ thuộc nào vào phương thức khởi tạo của lớp mà bạn đang kiểm tra, điều này cũng sẽ giúp dễ dàng kiểm tra.
public interface IFileSystem {
IFileHandle Load(string path);
}
public class ClassBeingTested {
public ClassBeingTested(IFileSystem fileSystem) {
}
public void DoSomethingWithFileSystem() {
}
}
tôi hy vọng java của tôi là chính xác, tôi đã không viết java trong một thời gian dài, nhưng bạn sẽ có được sự trôi chảy. hy vọng rằng tôi không đánh giá thấp vấn đề ở đây và quá đơn giản hóa!
tất nhiên điều này chỉ là giả định bạn muốn nói đến kiểm thử đơn vị thực sự, tức là kiểm tra các đơn vị mã nhỏ nhất có thể, chứ không phải toàn bộ hệ thống. để kiểm tra tích hợp, một cách tiếp cận khác là cần thiết.