Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Google {
- /*
- В этом задании - не обязательно было реализовывать пейдж
- т к согласно условия -
- You will do only a smoke coverage and you most probably will not reuse "steps" in other tests. (Or you don't know will you reuse or not)
- Но раз уже пейдж реализован - то не нужно от него избавляться
- насчет имени пейджа
- Google - слишком общее понятие
- лучше - GoogleSearch
- */
- *************************************************
- public static SelenideElement search = ...;
- /*
- мы обращаемся к элементу только в методе search
- вопрос - нужна ли такая переменная?
- для чего?
- */
- *****************************************************
- public static ElementsCollection results = ...;
- /*
- согласна - и переменная нужна - т к используем в нескольких методах
- и селектор - ОК
- */
- ***************************************************
- public static SelenideElement firstResult = ...;
- /*
- а вот такая переменная - перебор )
- когда нам нужно обратиться к результату
- при проверке текста результата по индексу ...
- и при выполнении перехода по главной линке результата по индексу ....
- раз уже мы реализовали пейдж
- то разумнее реализовать методы
- проверка текста результата по индексу ...
- переход по главной линке результата по индексу ....
- индекс - стоит вынести как параметр таких методов
- тогда такие методы могут быть использованы не только для работы с первым результатом
- значит - отталкиваемся от коллекции results и далее уточняемся до элемента - по его индексу
- и далее - выполняем нужное нам
- соответственно - переменная нам не нужна
- */
- ***********************************************************
- public static void ensureGoogleOpened(){
- if (!url().equals("http://google.com/ncr")) {
- open("http://google.com/ncr");
- }
- }
- /*
- в данном случае - такой метод создавать - преждевременно
- у нас сейчас - всего один тест-метод
- и мы пока не знаем о наших будущих потребностях и планах
- потому - вот эта логика - если урл не открыт, то отркрыть - нам пока ни к чему
- достаточно метода visit() - в котором мы просто выполняем open("http://google.com/ncr");
- */
- ***********************************************************
- public static void assertResultsCount(int searchCount){
- /*
- searchCount - не совсем подходит
- с учетом имени метода - достаточно count
- или resultsCount
- */
- ******************************************
- public static void assertText(SelenideElement searchResult, String searchResultText){
- /*
- уже выше писала про это - предлагаю метод assertResult(int index, String text)
- нам же не любые SelenideElement-ы подойдут тут)
- а лишь какой-то из элементов коллекции results
- имя параметра searchResultText - многовато слов, которые уже ничего не уточняют
- термин results - мы уже применяем, про search - скажем на уровне имени пейджа
- с учетом имени метода assertResult - параметр можно просто назвать text
- или resultText
- */
- *********************************************************
- public static void visit(SelenideElement searchResult){
- /*
- и тут у нас будет метод с похожей функциональностью
- но с абором параметров попроще)
- followLink(int index)
- из тех же соображений
- нам ведь далеко не любой SelenideElement подойдет
- а так - внутри метода будем оперировать коллекцией results
- захочешь - не ошибешься)
- а главную линку у результата - ищешь верно)
- */
- *************************************
- public static void assertSeleniumOfficialPageIsLoaded(){
- /*
- вот это - уже точно не относится к функциональности пейджа GoogleSearch
- предлагаю вынести этй проверку прямо в тест-метод
- ведь код - понятный
- и переиспользовать его - мы вряд ли будем
- а после такой проверки - которая кстати, выполнит и роль умного ожидания - что страница загрузилась
- можно уточниться - проверить урл открытой страницы
- используй jUnit-овский assertEquals
- http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertEquals(double, double)
- обе эти проверки - некорректно выностить в пейдж
- т к это уже другая страница и к логике GoogleSearch - это не относится
- да и - проверки простые, наглядные
- и вряд ли их будут переиспользовать в рамках тестов GoogleSearch в будущем
- */
- *******************
- public void testSearch(){
- /*
- вообще мы тут тестируем и search, и followLink
- testSearchAndFollowLink - будет корректнее
- */
Advertisement
Add Comment
Please, Sign In to add comment