странное поведение покрытия в тесте класса init - PullRequest
0 голосов
/ 27 декабря 2018

У меня проблема с данными о скрытности в отчете, не согласен.Или это просто так работает?Мой пример.Файл functions.py:

class TestClass(object):
    def __init__(self, a, b, c, d):
        self.a = a
        self.b = b
        self.c = c
        self.d = d

Файл tests.py:

def testClassInit():
    instance = functions.TestClass(a=1, b=2, c=3, d=4)
    assert instance.a == 1
    assert instance.b == 2

В отчете показано, что все строки в файле functions.py покрыты тем, что не является правдой, само собой.c и self.d не являются.

Когда я делаю:

def testClassInit():
    instance = functions.TestClass(a=1, b=2, c=3, d=4)
    assert instance.a == 1
    assert instance.b == 2
    assert instance.c == 3
    assert instance.d == 4

охват одинаков.Может кто-нибудь объяснить мне это?

Кстати.Можно ли в этом случае использовать столько проверок в тесте?

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Покрытие не измеряет, правильно ли вы утверждаете.Он измеряет, были ли строки выполнены.В первом тесте выполняются все строки в вашем методе __init__.Фактически все они выполняются первой строкой вашего теста.В этом случае утверждения не имеют значения.

Кроме того, хорошо иметь много утверждений в одном тесте, если они все связаны с одним результатом.

0 голосов
/ 27 декабря 2018

Отчет о покрытии просто говорит вам, какие строки были выполнены во время теста.Таким образом, все четыре строки в вашем init () будут выполнены при создании экземпляра класса.

...