仅断言json .Net对象属性名称,不带值

时间:2019-07-23 10:49:30

标签: fluent-assertions

是否可以仅声明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
}

因此,当在actualexpected上方进行比较时,应该相符。

基本上我想比较上面的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>());

0 个答案:

没有答案