Ваш текущий делегат проверяет, что весь объект obj
равен объекту анонимного типа new { DataProperty = "Test"}
- что вряд ли будет проверять то, что вы хотите.
Что вынужно убедиться, что:
1) obj
имеет свойство с именем, которое вы ожидаете.
2) это свойство имеет значение, которое вы ожидаете.
Используя отражение, вы можете выполнить обе проверки следующим образом:
Mocker.Mock<IToTest>
.Verify(x => x.MethodToTest(
It.Is<object>(
obj =>
obj.GetType().GetProperty("PropertyOne") != null &&
obj.GetType().GetProperty("PropertyOne").GetValue(obj).ToString() == "Test"
)),
Times.Once());
Важное примечание - не забывайте проверку NULL на результат GetProperty()
для случаев, когда свойство делаетне существует.