Например, функция должна сделать выделение строки в гриде:
public CollectionView SelectRow(int index) {
var gridElement = driver.FindElementWithWait(_xPath);
var rowElements = gridElement.FindElements(By.CssSelector(".collection-row"));
if(rowElements.Count > index)
rowElements[index].Click();
return this;
}
И сразу точно известно, что функция эту задачу выполнит только при условии "rowElements.Count > index"
Если текущий расклад не попадает под условие, то эта функция успешно выполняется, но втихую ничего не делает, т.е. не выполняет свои обязательства.
Вместо этого в этом раскладе должен быть throw new InvalidOperation("почему"): метод вызван в некорректный момент и вызывающий код должен что-то с этим сделать.
Без таких ошибок трудно разбираться с результатами от вызовов других методов после этого метода, для которых контекст вызова уже точно некорректный ("нет выделенной строки"), они не будут работать как задумывал автор и разборки с такими ошибками становятся похожи на квест.
Комментариев нет:
Отправить комментарий