Библиотека Shouldly assertion для .NET каким-то образом знает, на какое выражение вызывается метод assert, чтобы он мог отображать его в сообщении. Я попытался выяснить, как это работает, но потерялся в исходном коде. Я подозреваю, что он просматривает скомпилированный код, но мне очень хотелось бы посмотреть, как это происходит. Из документации
map.IndexOfValue("boo").ShouldBe(2); // -> map.IndexOfValue("boo") should be 2 but was 1
Как-то Должно знать выражение map.IndexOfValue( "boo" ) и смог отобразить его в сообщении об ошибке тестирования. Кто-нибудь знает, как это происходит?