Документирование юнит-тестов не является подходящим и понятным способом. Проще говоря, я бы предпочел создать эффективные наборы тестов вместе с довольно четкими объяснениями, чтобы избежать какой-либо конкретной документации в тестах. После этого наборы тестов будут напоминать полную документацию, и они также расскажут о том, что делает текущий метод.
Вот пример, демонстрирующий вышеописанное с помощью Jest:
desscribe('<ComponentName />', () => {
describe('button click', () => {
it('calls exampleFunction', () => {
expect(exampleFunction).toHaveBeenCalled();
});
});
});
Я не эксперт по интеграционному тестированию, но если вы действительно хотите остаться в курсе документирования ваших тестов страница jsdoc довольно проста для меня.
Внутри класса, который наследуется от класса ListBox, вы можете использовать Protected GetTemplateChild ():
var myScrollviewer = myListBox.GetTemplateChild ("ScrollViewer") как ScrollViewer;
Если вы хотите чтобы получить доступ к этому извне ListBox, тогда предоставление ScrollViewer через Property должно работать, опять же через наследование.
CAVEAT: Если вы установили свой собственный шаблон, этот Scrollviewer может не существовать. Вы можете использовать шаблоны Scrollviewer name вместо «ScrollViewer» в методе выше.
Хороший вопрос. Я не нашел способ сделать это непосредственно, но приехал справедливо рядом с рассмотрением проекта Средств управления Silverlight (они используют scrollviewer на управлении объектами в некоторых классах). Вот то, как можно получить его, но это требует пользовательского поля списка:
public class TestBox : ListBox
{
private ScrollViewer _scrollHost;
protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{
var itemsHost = VisualTreeHelper.GetParent(element) as Panel;
for (DependencyObject obj = itemsHost; obj != item && obj != null; obj = VisualTreeHelper.GetParent(obj))
{
ScrollViewer viewer = obj as ScrollViewer;
if (viewer != null)
{
_scrollHost = viewer;
break;
}
}
base.PrepareContainerForItemOverride(element, item);
}
}
Мог бы быть другой способ сцепиться в то событие (или другой способ получить ту панель) при рассмотрении шаблона для ListBox, Вы будете видеть, что средство просмотра прокрутки на самом деле называют "ScrollViewer", однако метод GetTemplateChild защищен так, необходимо было бы все еще создать пользовательский класс.
ScrollViewer scrollViewer = yourListBox.getScrollHost();
Нулевой, если для списка не задан источник данных, в моем случае он возвращает правильный элемент пользовательского интерфейса только после выполнения кода ниже
myListBox.ItemsSource = list;
Вы можете вызвать:
myListBox.ApplyTemplate();
, чтобы принудительно создать визуальное дерево ListBox, иначе GetTemplateChild () вернет Null, если вы попытаетесь немедленно получить к нему доступ.
Это хорошо работает в сочетании с объяснением « Эрно де Верд »: наследовать ListBox, чтобы иметь возможность вызывать метод GetTemplateChild ().
Я также пробовал:
Эммануэль (Silverlight 3)