Похоже, вы ожидаете, что ваш фиктивный объект будет более или менее действовать как реальный объект.Это не работает таким образом;макет будет делать только то, что вы говорите, не больше, не меньше.Если вы не говорите макету возвращать что-то конкретное при звонке.,.
context.HttpContext.Application["config"]
.,,тогда это просто не будет.Если вы настроили макет так, чтобы он возвращал что-то конкретное, это отрицательно сказалось бы на цели вашего теста.
Без какого-либо дополнительного понимания или вашей ситуации («что» и «почему» вашей тестовой стратегии), этоПохоже, вы пытаетесь убедиться, что набор состояния приложения вызывается.Я бы рекомендовал сделать mockApplicationState.Verify()
в качестве вашего утверждения, чтобы проверить, что набор произошел , вместо того, чтобы проверять результирующее состояние самого объекта.
Редактировать: Проверить() позволяет утверждать / гарантировать, что метод (или метод свойства) был вызван с условиями или без них.Это должно помочь вам начать:
http://code.google.com/p/moq/wiki/QuickStart#Verification
Таким образом, ваша проверка будет выглядеть примерно так (полностью непроверено!):
mockApplicationState.Verify(x => x["config"] == [expected value], Times.Once());
Это в основном говорит о неудачной проверке, еслидля mockApplicationState ["config"] установлено ожидаемое значение менее одного раза или более одного раза.
Я предполагаю, что HttpApplicationStateBase не запечатан.Если это так, то приведенное выше может вызвать исключение.