On Tuesday, 29 March 2022 at 19:55:52 UTC, Andrey Zherikov wrote:
I have a function below (just an example). What's the recommended way to unit-test it for all `version` cases?
```d
void f()
{
        import std.stdio: writeln;

    version(foo)
        writeln("foo");
    else
        writeln("no foo");
}
```

Probably the easiest way is to split it into two functions

```d
void f()
{
    version (foo)
        fVersionFoo();
    else
        fDefault();
}

void fVersionFoo()
{
    /* ... */
}

void fDefault()
{
    /* ... */
}
```

Then you can write separate unit tests for both `fVersionFoo` and `fDefault`, and they will both be tested regardless of what settings you build with.

Reply via email to