简体   繁体   English

NameError 中的单元测试结果

[英]Unit test results in NameError

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()

I get three NameErrors: NameError: name 'bj' is not defined Likewise for pl.我得到三个 NameErrors: NameError: name 'bj' is not defined 同样对于 pl。

It seems I'm making a syntax error but I'm not sure where.似乎我犯了一个语法错误,但我不确定在哪里。 First, I had missing arguments so I created instances of Blackjack and Player and now it doesn't seem to recognize the instances that I created.首先,我缺少参数,所以我创建了 Blackjack 和 Player 的实例,现在它似乎无法识别我创建的实例。

You are calling them from a bound method so access them as instance/class variables, or in other words access them using self您从绑定方法调用它们,因此将它们作为实例/类变量访问,或者换句话说,使用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()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM