2016-10-14 5 views
0

Я пытаюсь сделать «строгий» сравнение с использованием FluentAssertions ShouldBeEquivilantTo. Кажется, что все работает хорошо, если «фактическое значение» имеет свойства, которые «ожидаемое значение» не имеет, но мне нужно добиться такого поведения, чтобы, если «ожидаемое значение» имеет свойства, которые «фактическое значение» не так мне также нужно потерпеть неудачу. Другими словами, я ищу все свойства для существования в обоих объектах, иначе я ожидаю, что мой тест завершится неудачей.Как я могу сделать FluentAssertions ShouldBeEquivalentTo fail, если ожидается, есть члены, которые не соответствуют действительности

Пример: Я хочу, чтобы это терпеть неудачу:

 var actual = new 
     { 
      a = "simple", 
      b = new 
      { 
       c = "complex" 
      } 
     }; 

     var expected = new 
     { 
      a = "simple", 
      b = new 
      { 
       c = "complex" 
      }, 
      d = "missing" 
     }; 

     actual.ShouldBeEquivalentTo(expected); 

Есть ли вообще добиться такого поведения? Я попытался взглянуть на IMemberSelectionRule, но не похоже, что ISubjectInfo или IEquivalencyAssertionOptions содержат информацию о «ожидаемом значении»

Возможно, что я что-то пропустил, поэтому прошу прощения, если это глупый вопрос.

В качестве дополнительной дополнительной причины я сравниваю анонимные типы, потому что это ответы от контроллера WebApi в другой сборке. Я разоблачил анонимные типы, добавив свой тестовый набор как дружественный, используя нотацию [assembly: InternalsVisibleTo ("testsuite")].

ответ

0

Вы не можете, так как он будет оценивать только свойства, которые имеет actual. Это то, что я хотел бы изменить в v5.

+0

Спасибо, что сообщили мне. Если я получу шанс, я взгляну и посмотрю, смогу ли я получить запрос на тяну. – ashelley

+0

Это было бы потрясающе, но все, кроме тривиального. –