[英]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.