Как написать код юнит-теста Python для взаимодействия с электронной таблицей - PullRequest
0 голосов
/ 30 апреля 2019

Я написал программу на Python / Selenium / OpenPyxl, которая берет данные из электронной таблицы, а затем вставляет их на веб-сайт. Это не формальное домашнее задание, я просто пытаюсь научить себя, используя некоторые упражнения, которые я нашел в Интернете (хотя в Java нет Python).

Я хочу написать unittest для проверки моего теста, но понимаю только базовые unittest, основанные на онлайн-исследованиях. Ищите руководство о том, как написать соответствующий юнит-тест для этого теста.

У меня есть один модуль - этот модуль имеет следующий

  1. A Для циклов Range, чтобы подсчитать, сколько строк учетных данных для входа в электронную таблицу (тест попытается выполнить все входы в систему независимо от того, успешны они или нет)
  2. Если условия, которые проверяют вход в систему, успешны
  3. Оператор Else для случая, когда вход не был успешным
  4. A Попробуйте / за исключением того, что будет активировано условием Else для закрытия оповещения о неудачном входе в систему и за исключением успешного входа в систему.
  5. OpenPyxl для заполнения каждой строки учетными данными, если тест пройден или не пройден

Насколько я понимаю, мне нужно

  1. def setupClass (cls): для проверки каждой строки учетных данных из электронной таблицы

  2. def tearDown (self): закрыть каждый тест для каждого ряда учетных данных

  3. Мне нужно руководство по применению юнит-теста для условия If / Else

  4. Руководство по применению условия Try / Except в unittest

Если бы вы могли вести меня, это было бы здорово. У меня проблемы с визуализацией

#loop through each row of spreadsheet and enter the username and password in login for each row        
  for r in range(2, rows+1):
        username = spreadsheet.readData(path, "Sheet1", r, 1)
        password = spreadsheet.readData(path, "Sheet1", r, 2)
        login.enter_username(username)
        login.enter_password(password)
        login.click_login()

#If login if not successful then accept alert, if login is successful press back button to return to login page
        try:
            alert = driver.switch_to.alert
            alert.accept()
        except NoAlertPresentException:
            driver.execute_script("window.history.go(-1)")
#If login is successful and goes to next page then pass test and populate spreadsheet. If login is not successful then update spreadsheet with fail result
        if driver.current_url == "http://www.demo.guru99.com/V4/manager/Managerhomepage.php" :
            print("test is passed")
            spreadsheet.writeData(path, "Sheet1", r, 3, "test passed")
        else:
            print("test failed")
            spreadsheet.writeData(path, "Sheet1", r, 3, "test failed")

#below is where i' looking for guideance.
Class Test_LoginTest(unittest.TestCase):
    @classmethod
    def setupClass(cls):
        new_url = "http://www.demo.guru99.com/V4/manager/Managerhomepage.php"

    def tearDown(self):
        print('teardownClass')

    def test_login_valid(self):
        self.assertEqual()

Полагаю, мне нужно

  1. asssertEqual, что успешный вход в систему переходит на следующую страницу

  2. подтверждение неудачного входа в систему приводит к предупреждению

  3. Нужно ли утверждать, что обновления таблиц Excel правильные? (я понятия не имею, как это будет сделано)

4. Мне нужно unittest, который пытается / кроме работ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...