Tempfiles in unittests
Magnus Lie Hetland
magnus at hetland.org
Fri Mar 9 06:50:31 PST 2012
I'm testing a class that writes various things to a file, and I'd like
to test that behavior, and I'm wondering what the standard solution
here is.
In Python, I'd just use a StringIO class, for example. It seems sort of
impractical to make std.outbuffer to work as a File (even if the
file-like parameter is a template parameter, the outbuffer methods
don't work like the File methods, as far as I can see), so I've
concluded that using std.stdio.tmpfile is the way to go.
However, when I'm done with the tempfile, I'd like to have its contents
as a string. It seems that File has no method for reading the entire
file contents into a string, so I'd have to read and concatenate lines
or chunks or something? Now, if the File returned by tmpfile had a
name, I could use std.file.readText(). But no such luck (as far as I
can see, tmpfile().name is null).
So I'm just wondering -- what's "the way" to do this sort of testing?
And if it is along the lines of what I'm doing, is there some
function/method for reading the contents of a File as a string?
(I guess this goes for much file-related functionality; much of it
seems to be very related to file-names and actual files, rather than
"file-like" objects, i.e., those with the appropriate methods...)
--
Magnus Lie Hetland
http://hetland.org
More information about the Digitalmars-d-learn
mailing list