TypeError: assertEqual () отсутствует 1 обязательный позиционный аргумент: 'second' - PullRequest
1 голос
/ 29 мая 2019

Я работаю над проектом в Runestone, используя test.testEqual ().Я работаю с консолью Anaconda / Spyder и перевожу код обратно в Runestone.Кажется, Python не поддерживает test.testEqual, поэтому я попытался использовать метод TestCase.assertEqual (first, second, msg) в рамках unittest.Мой код выдает сообщение об ошибке: TypeError: assertEqual () отсутствует 1 обязательный позиционный аргумент: 'second'

, но, как показано в приведенном ниже коде, я включаю оба аргумента в вызов.Я новичок в модульном тестировании, поэтому не уверен, куда идти, чтобы решить эту проблему?

переключен с test.testEqual () на TestCase.assertEqual (first, second, msg)

from unittest import TestCase
def distance(x1, y1, x2, y2):
    dx = x2 - x1
    dy = y2 - y1
    dsquared = dx**2 + dy**2
    result = dsquared**0.5
    return result

TestCase.assertEqual(distance(1,2, 1,2),0,msg='Equal')
TestCase.assertEqual(distance(1,2, 4,6), 5, msg='Equal')
TestCase.assertEqual(distance(0,0, 1,1), 2**0.5, msg='Equal')

Мы ожидаем, что три тестовых случая пройдут на основе их выполнения в консолях Runestone.

1 Ответ

0 голосов
/ 20 июня 2019

Вы используете TestCase неправильно.Вместо этого создайте тестовый класс и унаследуйте unittest.TestCase.Добавьте индивидуальный тест, тогда вы можете идти

class TestDistance(TestCase):

    def test_distance(self):
        self.assertEqual(distance(1, 2, 1, 2), 0, msg='Equal')
        self.assertEqual(distance(1, 2, 4, 6), 5, msg='Equal')
        self.assertEqual(distance(0, 0, 1, 1), 2 ** 0.5, msg='Equal')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...