使用 sqlite 内存的集成测试两次 api 调用
Integration testing using sqlite memory two api calls
查询发生后,我在进行插入调用(和创建数据库)时遇到了问题,数据库在内存中,问题是 acada 调用数据库死了。能够在我的测试中创建数据库并对其进行操作会很有趣。
// Act
var model = new CreateOrUpdateTagsModel
{
UserId = 1,
CatalogItemType = "Movie",
Owner = 1,
PinRequired = false,
ProductId = 1,
TagType = "Stars",
TagValue = "5"
};
var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
var json = JsonConvert.SerializeObject(model, jsonSerializerSettings);
var response2 = await _client.PutAsync("/v1/tags", new StringContent(json, Encoding.UTF8, "application/json"));
response2.EnsureSuccessStatusCode();
var responseString2 = await response2.Content.ReadAsStringAsync();
var response = await _client.GetAsync("/v1/tags?userId=1");
response.EnsureSuccessStatusCode();
我一直在使用 AddSingleton
为 IDbConnection
解决您的 StartupTest.cs,在我的测试中使用 _queryExecutor = _server.Host.Services.GetService(typeof(IQueryExecutor)) as IQueryExecutor;
作为 TestServer
的 _server
实例].
查询发生后,我在进行插入调用(和创建数据库)时遇到了问题,数据库在内存中,问题是 acada 调用数据库死了。能够在我的测试中创建数据库并对其进行操作会很有趣。
// Act
var model = new CreateOrUpdateTagsModel
{
UserId = 1,
CatalogItemType = "Movie",
Owner = 1,
PinRequired = false,
ProductId = 1,
TagType = "Stars",
TagValue = "5"
};
var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
var json = JsonConvert.SerializeObject(model, jsonSerializerSettings);
var response2 = await _client.PutAsync("/v1/tags", new StringContent(json, Encoding.UTF8, "application/json"));
response2.EnsureSuccessStatusCode();
var responseString2 = await response2.Content.ReadAsStringAsync();
var response = await _client.GetAsync("/v1/tags?userId=1");
response.EnsureSuccessStatusCode();
我一直在使用 AddSingleton
为 IDbConnection
解决您的 StartupTest.cs,在我的测试中使用 _queryExecutor = _server.Host.Services.GetService(typeof(IQueryExecutor)) as IQueryExecutor;
作为 TestServer
的 _server
实例].