mardi 23 décembre 2014

Boundary test with Raven Db

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?


Aucun commentaire:

Enregistrer un commentaire