In my previous post I showed you how I used ServiceStack to do the integration tests with Easyhttp.

I also used a different port for each test and thus a different instance of ServiceStack for each of these tests.

Of course The Boss was not happy with this.

So I went for a look on how to do this the better way.

And I found this on Stackoverflow. So thanks to Jason Watts for helping me along.

So the ServiceStackHost.cs file is still the same as before. But I created this class.

```csharp using Machine.Specifications;

namespace EasyHttp.Specs.Helpers { public class DataSpecificationBase : IAssemblyContext { private ServiceStackHost _appHost; private int _port;

    void IAssemblyContext.OnAssemblyComplete()
    {
        _appHost.Dispose();    
    }

    void IAssemblyContext.OnAssemblyStart()
    {
        _port = 16000;
        var listeningOn = "http://localhost:" + _port + "/";
        _appHost = new ServiceStackHost();
        _appHost.Init();
        _appHost.Start(listeningOn); 
    }

}

}``` And I removed the apphost field and init and teardwon code from the tests. So a test now looks like this.

```csharp [Subject(“HttpClient”)] public class when_making_a_GET_request_with_valid_uri { Establish context = () => { httpClient = new HttpClient(); };

    Because of = () =>
    {
        httpResponse = httpClient.Get("http://localhost:16000");

    };

    It should_return_body_with_rawtext =
        () => httpResponse.RawText.ShouldNotBeEmpty();


    static HttpClient httpClient;
    static HttpResponse httpResponse;
}```

It has no clue about apphost.

And now the Boss is happy.

And you can find all the code on Github.

So now I know a bit more about mspec, servicestack and easyhttp. One is never to old to learn.