Integrating with NUnit
When using Alba within NUnit testing projects, you probably want to reuse the IAlbaHost
across tests and test fixtures because AlbaHost
is relatively expensive to create (it's bootstrapping your whole application more than Alba itself is slow). To do that with NUnit, you could track a single AlbaHost
on a static class like this one:
cs
[SetUpFixture]
public class Application
{
[OneTimeSetUp]
public async Task Init()
{
Host = await AlbaHost.For<WebApp.Program>();
}
public static IAlbaHost Host { get; private set; }
// Make sure that NUnit will shut down the AlbaHost when
// all the projects are finished
[OneTimeTearDown]
public void Teardown()
{
Host.Dispose();
}
}
Then reference the AlbaHost
in tests like this sample:
cs
public class sample_integration_fixture
{
[Test]
public async Task happy_path()
{
await Application.Host.Scenario(_ =>
{
_.Get.Url("/fake/okay");
_.StatusCodeShouldBeOk();
});
}
}