Результаты модульного теста в NameError - PullRequest
1 голос
/ 31 марта 2020
import unittest
from blackjack import Blackjack
from blackjack import Player


class TestCardGame(unittest.TestCase):
    bj = Blackjack(4)

    def test_choose_card(self):
        self.assertEqual(bj.choose_card(['A',1],0),'A')
        self.assertEqual(bj.choose_card(['A', 1], 1), 1)

    def test_return_card_val(self):
        self.assertEqual(bj.return_card_val(['A',1],'A'),11)
        self.assertEqual(bj.return_card_val(['A',1], 1), 1)

class TestPlayer(unittest.TestCase):
    pl = Player('Apple')

    def test_add_score(self):
        self.assertEqual(pl.add_score('A'), 11)

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

Я получаю три NameError: NameError: имя 'bj' не определено Аналогично для pl.

Кажется, я делаю синтаксическую ошибку, но я не уверен, где. Во-первых, у меня отсутствовали аргументы, поэтому я создал экземпляры Blackjack и Player, и теперь он, похоже, не распознает созданные мной экземпляры.

1 Ответ

2 голосов
/ 31 марта 2020

Вы вызываете их из связанного метода, поэтому обращайтесь к ним как к переменным экземпляра / класса или, другими словами, обращайтесь к ним, используя self

import unittest
from blackjack import Blackjack
from blackjack import Player


class TestCardGame(unittest.TestCase):
    bj = Blackjack(4)

    def test_choose_card(self):
        self.assertEqual(self.bj.choose_card(['A',1],0),'A')
        self.assertEqual(self.bj.choose_card(['A', 1], 1), 1)

    def test_return_card_val(self):
        self.assertEqual(self.bj.return_card_val(['A',1],'A'),11)
        self.assertEqual(self.bj.return_card_val(['A',1], 1), 1)

class TestPlayer(unittest.TestCase):
    pl = Player('Apple')

    def test_add_score(self):
        self.assertEqual(self.pl.add_score('A'), 11)

if __name__ == '__main__':
    unittest.main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...