我正在使用Web API和Raven DB构建系统。
我正在针对该系统的外部边界编写集成测试。
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);
}
}
当我提交参赛作品时,Controller
会与DocumentStore
互动,因为这就是它在制作中的作用。
我遇到的麻烦是测试中产生的数据永远不会被清除。
根据我一直在阅读的内容,我应该使用EmbeddableDocumentStore
进行验收测试。
在执行像这样的边界测试时,我如何正常使用DocumentStore
但是EmbeddableDocumentStore
?
答案 0 :(得分:1)
你如何与DocumentStore&#34;互动?在你的控制器?控制器真的只需要&#34;互动&#34;使用可由WebAPI基础结构注入的IDocumentSession,并在集成测试中注册IDocumentStore,由EmbeddableDocumentStore实现(假设您使用某种IoC容器)。