使用乌鸦数据库进行边界测试
本文关键字:边界 测试 数据库 乌鸦 | 更新日期: 2023-09-27 18:35:18
我正在使用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
?
如何在控制器中"与 DocumentStore 交互"?控制器实际上只需要与 WebAPI 基础结构注入的 IDocumentSession "交互",并且在集成测试中,您将 IDocumentStore 注册为由 EmbeddableDocumentStore 实现(前提是您使用某种 IoC 容器)。