【发布时间】:2022-01-01 14:31:55
【问题描述】:
我有这个在 C# 中使用 Xunit 的集成测试代码。我的问题是如何为具有多个结果的多个对象断言?
[Theory, MemberData(nameof(ClientIsEmptyOrNull_Data))]
public async Task When_ClientIsEmptyOrNull_Then_ReturnErrorMessage(List<MarketingLeadDto> marketingLeadDtos,
List<string> expectedErrorMessages)
{
using (var client = new HttpClient() { BaseAddress = new Uri(TestSettings.BaseAddress) })
{
_output.WriteLine("authToken: {0}", _authToken);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _authToken);
foreach (var marketingLeadDto in marketingLeadDtos)
{
var encodedContent = new StringContent(JsonConvert.SerializeObject(marketingLeadDto), Encoding.UTF8, "application/json");
var response = await client.PostAsync("/ABC/Leads", encodedContent);
var responseString = await response.Content.ReadAsStringAsync();
_output.WriteLine("response: {0}", responseString);
HttpStatusCode statusCode = response.StatusCode;
Assert.Equal(HttpStatusCode.OK, statusCode);
//expectedErrorMessages.Should().BeEquivalentTo(marketingLeadDtos);
}
}
}
public static TheoryData<List<MarketingLeadDto>, List<string>> ClientIsEmptyOrNull_Data()
{
return new TheoryData<List<MarketingLeadDto>, List<string>>
{
{
new List<MarketingLeadDto>
{
new MarketingLeadDto
{
AccountType = "1",
Salutations = "1",
Name = "Steven",
CompanyName = "",
Nationality = "",
Client = "",
}
},
new List<string>
{
"Client type is required"
}
}
};
}
【问题讨论】: