Шим использовать реализацию метода по умолчанию

1

Могу ли я вызвать метод по умолчанию изнутри моей прокладки?

Я попробовал это, но это не сработает.

ShimConfigurationHelper.GetConfigValueString = (key) {
    switch (key)
    {                       
        case "SpecialKey":
            return "some-value-for-testing";

        default:
            return ConfigurationHelper.GetConfigValue(key);
    }
};
Теги:
unit-testing
nunit
shim
microsoft-fakes

1 ответ

0

Вы можете пометить разделы своего кода, которые должны выполняться, как если бы они были вне ShimContext, чтобы они использовали оригинальную реализацию. Один из способов сделать это - обернуть код в делегат от вызова ShimContext.ExecuteWithoutShims. При этом ваш код может выглядеть следующим образом:

ShimConfigurationHelper.GetConfigValueString = (key) {
    var response=String.Empty;
    switch (key)
    {                       
        case "SpecialKey":
            response = "some-value-for-testing";
            break;

        default:
            ShimsContext.ExecuteWithoutShims(() => {
                response = ConfigurationHelper.GetConfigValue(key);
            });
            break;
    }
    return response;
};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню