class TestWeapon(unittest.TestCase): def setUp(self): self.weapon = Weapon('Sword', 150, 0.5) def test_initialisation(self): self.assertEqual(self.weapon.w_type, 'Sword') self.assertEqual(self.weapon.damage, 150) self.assertEqual(self.weapon.crit, 0.5) def test_value_error(self): with self.assertRaises(ValueError): self.weapon = Weapon('Sword', 150, 2.5) def test_critical_hit(self): crit_hits = [] for i in range(20): crit_hits.append(self.weapon.critical_hit()) flag = [False, False] for i in crit_hits: if i: flag[0] = True if not i: flag[1] = True self.assertEqual(flag, [True, True])
def test_critical_hit(self): my_weapon = Weapon("axe", 30, 0.5) flags = set() for i in range(1000): flags.add(my_weapon.critical_hit()) self.assertEqual(2, len(flags))