Вопрос для начинающих: изменение переменной и использование ее в другом методе - PullRequest
0 голосов
/ 03 августа 2011

Я пишу некоторые юнит-тесты, которые я упростил до следующего:

class BuyTicket(TestCase):

    ipn = {
        "payer_email": "bishan_1233269544_per@gmail.com",
        "quantity": "1",
    }

    def setUp(self):
        self.attendee = create_user(username='attendee', \
                                    email='attendee@foobar.com')
        self.client = Client()

    def test_1(self):
        self.quantity = 100
        self.ipn['quantity'] = self.quantity

    def test_2(self):
        # I would like to use the updated values of ipn['quantity']
        # in this method

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

Ответы [ 2 ]

0 голосов
/ 03 августа 2011

Это нарушает соглашение о модульном тестировании.

Каждый метод испытаний должен начинаться с одной и той же начальной точки.

0 голосов
/ 03 августа 2011

Я не думаю, что вы хотите сделать это: Я думаю, что Unittest создает новый экземпляр BuyTicket для каждой тестовой функции и вызывает setUp перед каждым тестом.

Если один тест зависит от другого, как вы описали, вы должны выделить зависимость в отдельный код или вызвать функцию setup (). Если вам действительно нужно сделать то, что вы говорите, тогда объявите ipn на уровне модуля.

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