Разработка через тестирование - PullRequest
0 голосов
/ 13 января 2019

У меня есть этот код, который я написал, чтобы проверить, является ли строка прописными буквами. Если это так, он возвращает True, а если не все заглавные буквы, он возвращает False. Мне нужно запустить модульные тесты для этого решения, но я застрял.

Есть ли лучший или более простой код для кода решения? Как я могу протестировать решение? Правильна ли моя попытка? если нет, не могли бы вы мне помочь?

Код моего решения

def is_uppercase(x):
    words = x.split("_")
    for word in words:
        if word == word.upper():
            return True
        else:
            return False

is_uppercase("AM dONALD")

Попытки юнит-тестов

import unittest
import Capss       #  solution code file name


class TestCaps(unittest.TestCase):

    def test_is_uppercase(self):
        self.assertTrue("FF", msg=True)


if __name__ == '__main__':
    unittest.main()

Когда я запускаю код решения, передавая аргументы со всеми заглавными буквами или смешивая прописные и строчные буквы, я получаю ожидаемое значение True или False. Однако, когда я манипулирую значениями в модульных тестах, результат точно такой же, ничего не меняется. Любая помощь?

1 Ответ

0 голосов
/ 13 января 2019

Здесь:

def test_is_uppercase(self):
    self.assertTrue("FF", msg=True)

В вашем тесте есть только утверждение, но вы вовсе не вызываете фактический "тестируемый метод", который, как вы утверждаете, вы хотите проверить.

Вы должны вызвать этот метод и проверить ожидаемые результаты, например:

self.assertTrue(is_uppercase("UPPER"))
self.assertFalse(is_uppercase("lower"))
self.assertFalse(is_uppercase("Mixed"))

Цель модульных тестов - вызвать ваши функции «производственного кода» и проверить, дают ли они ожидаемый результат.

Здесь нет магии, среда юнит-теста не может догадаться , что вы импортировали Capps, потому что вы волшебным образом хотите проверить is_uppercase()!

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