I am building a system using Web API and Raven DB.
I am writing integration tests against the external boundary of this system.
public void GetAfterPostingPollReturnsPoll() { using (var client = HttpClientFactory.Create()) { var poll = new { Question = "What is the answer?", Options = new[] { "Yes", "No", "Maybe" } }; var postResponse = client.PostAsJsonAsync("", poll).Result; var pollLocation = postResponse.Headers.Location; var getResponse = client.GetAsync(pollLocation).Result; var actual = JsonConvert.DeserializeObject<Poll>( getResponse.Content .ReadAsStringAsync() .Result); Assert.Equal(poll.Question, actual.Question); Assert.Equal(poll.Options, actual.Options); } } When I submit an entry, the Controller interacts with a DocumentStore because that is how it works in production.
The trouble I am having is that the data produced in the test is never cleaned up.
Based on what I have been reading, I should use the EmbeddableDocumentStore for the purposes of my acceptance tests.
How might I use the DocumentStore normally but the EmbeddableDocumentStore when executing boundary tests like this one?