AssertRaises不可调用

Iac*_*cks 7 python unit-testing

说我上课了

class myClass(object):
   pname = ""

   def __getName(self):
      return pname

   def __setName(self, newname):
      if not isalpha(newname):
         raise ValueError("Error")
      elif
         self.pname = newname

   name = property(fget=__getName,fset=__setName)
Run Code Online (Sandbox Code Playgroud)

看到这些方法是私有的,我通过名称访问pname,当AssertRaises只接受其测试的可调用时,如何使用AssertRaises进行测试?

lac*_*ker 9

让你自己的可赎回.

class TestMyClass(unittest.TestCase):
    def test_should_raise(self):
        x = myClass()
        def assign_bad_name():
            x.name = "7"
        self.assertRaises(ValueError, assign_bad_name)
Run Code Online (Sandbox Code Playgroud)