Tôi muốn viết một bài kiểm tra đơn vị cho một phương thức in ra đầu ra tiêu chuẩn. Tôi đã thay đổi mã để nó in thành một phiên bản File
được thông qua thay vì đó là stdout
theo mặc định. Điều duy nhất tôi thiếu là một số trong bộ nhớ File
thể hiện mà tôi có thể chuyển vào. Có một điều như vậy? Bất kỳ đề nghị? Tôi muốn một cái gì đó như thế này đã làm việc:Tệp trong bộ nhớ để hủy gửi
import std.stdio;
void greet(File f = stdout) {
f.writeln("hello!");
}
unittest {
greet(inmemory);
assert(inmemory.content == "hello!\n")
}
void main() {
greet();
}
Bất kỳ cách tiếp cận nào khác cho mã thử nghiệm đơn vị in tới stdout
?
Liệu điều này cần phải được nền tảng chéo? –
Không; Ví dụ. dòng mới trên các nền tảng khác nhau có thể khác nhau. Tôi không muốn thử nghiệm khía cạnh này, nhưng chỉ có nội dung in được. Vì vậy, thay vì 'File' tôi cần một cái gì đó như' OutputStreamWriter' trong Java, có nghĩa là, tôi sẽ ở trong mức độ của các ký tự unicode thay vì mã hóa, hệ thống tập tin, vv Nó sẽ là tốt đẹp nếu chạy thử nghiệm của tôi trên tất cả các nền tảng tất nhiên ... – Tamas