python - AssertRaises 不可调用

标签 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)

鉴于这些方法是私有(private)的,并且我通过名称访问 pname,当 AssertRaises 只接受可调用的测试时,我如何使用 AssertRaises 进行测试?

最佳答案

制作您自己的可调用对象。

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

关于python - AssertRaises 不可调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3073009/

相关文章:

python - 如何使用数据类制作 "keyword-only"字段?

python - 测试设置和测试拆卸不会选取 __init__.txt 中定义的关键字

reactjs - Jest 单元测试 - 使用 props 模拟组件

c++ - 是否可以使用预处理器或编译器从头文件创建 stub ?

python - 如何在python中将属性附加到geojson文件?

python - 尝试将两个数据帧相互连接,但遇到索引值和长度不匹配的问题

c# - 如何等待方法中创建的所有线程

android - 使用 Robolectric 对 ActiveAndroid 模型进行单元测试

python - 错误 : PerfectSeparationError: Perfect separation detected, 结果不可用

sql-server - 了解 SQL Server 查询性能测试 - 输出无法理解