是否可以仅声明json属性名称而不是值。
实际:
{
CartId = 0
ConvertedAt = null
Currency = BankCurrency
{
BaseCurrencyCode = null
BaseToGlobalRate = 0
BaseToQuoteRate = 0
GlobalCurrencyCode = null
}
CustomerIsGuest = False
}
预期:
{
CartId = 418
ConvertedAt = 2019-07-22 04:01:49
Currency = BankCurrency
{
BaseCurrencyCode = null
BaseToGlobalRate = 1
BaseToQuoteRate = 1
GlobalCurrencyCode = "AUD"
}
CustomerIsGuest = False
}
因此,当在actual
和expected
上方进行比较时,应该相符。
基本上我想比较上面的json .Net对象,并检查属性名称(结构)是否正确,而不是那里的属性值。如果您看到上面的实际和预期结构在计算,但内部的值不在。我在下面用过,但它仍然在抱怨。
TheReturnedContentModelIs(new UserResponse())
验证:
public async Task TheReturnedContentModelIs<T>(T expected)
{
var responseString = await ResponseMessage.Content.ReadAsStringAsync();
var actual = JsonConvert.DeserializeObject<T>(responseString);
actual.Should()
.BeEquivalentTo(expected,
opt => opt.Using<object>(_ => { })
.When(e => e.RuntimeType.IsValueType)
.Using<string>(_ => { })
.WhenTypeIs<string>());