Я пытаюсь создать свой собственный EasyBinderDropDown, который в настоящее время выглядит следующим образом:
public class EasyBinderDropDown : DropDownList, ICanBindToObjectsKeyValuePair {
public void BindToProperties<TYPE_TO_BIND_TO>(IEnumerable<TYPE_TO_BIND_TO>
bindableEnumerable,
Expression<Func<TYPE_TO_BIND_TO, object>> textProperty,
Expression<Func<TYPE_TO_BIND_TO, object>> valueProperty) {...}
public bool ShowSelectionPrompt { get; set; }
public string SelectionPromptText { get; set; }
public string SelectionPromptValue { get; set; }
//...
}
По сути, это очень полезно для простой привязки к объектам из кода, поскольку вы просто делаете что-то вроде _dropDown.BindToProperties (myCustomers, c => c.Name, c => c.Id) и работает для вас, также настройка ShowSelectionPrompt и SelectionPromptText Я легко могу иметь строку «Выбор клиента». Я не хочу спрашивать так много о моей конкретной реализации, скорее я не понимаю, как писать модульные тесты для некоторых сценариев.
Например, мои текущие тесты охватывают элемент управления, который создается должным образом во время загрузки и правильно выводит его вывод, но я теряюсь в том, как проверить, что происходит, когда элемент управления отправляется обратно. Может кто-нибудь дать мне совет, как это проверить? Я бы предпочел сделать это без насмешек HTTPContext или чего-то подобного. Есть ли способ, которым я могу имитировать перестраиваемый элемент управления?