On Thursday, 3 November 2022 at 10:26:04 UTC, Imperatorn wrote:
On Thursday, 3 November 2022 at 10:00:27 UTC, Bruno Pagis wrote:
Good morning,
I have the following class:
```
class A {
int[] array;
...
void print() {
writeln("array = ", this.array);
}
}
```
I would like to unit test the print function (yes, I know, not
very useful on the above example since print is merely a
duplicate of writeln...). Is there a way to use assert to test
the output of the print function to stdout? Something like:
```
A myClass= new A;
myClass.array = [1,2];
assert(myClass.print() == "array = [1,2]"); // I know that
print does not return anything so this is wrong, but you get
the idea :-)
```
Thanks.
Just so we understand, do you want to verify that the output is
indeed directed to stdout and not some other stream?
Just for documentation purposes, if you wished to redirect I
believe you could do something like this (untested):
```d
auto original = stdout; // save
stdout.open(newdest, "wt"); // redirect
// do stuff, check newdest
stdout = original; // restore
```