如何在python单元测试中重写(而不是修补)单个方法
我找了好几个小时了。找不到任何人想这么做。嗯 我相信我必须重写类实例中的单个方法。我不是说返回值=。我需要让讨论中的方法做一些涉及自我的事情 我会尽力把它分解。自由地解释并包括我尝试过的许多事情中的一件,但都不起作用 类设置类对象: def set_一些物料自身: 数据列表=函数不能在测试平台上运行 self.something=数据列表[0] self.something\u else=数据列表[1] 类对象: self.config=SetupClass assert self.config.something==“foo” 类UnitTestsTestCase: @补丁“设置类” def测试自身,模拟1: def WedgeClassSetupClass: def set_一些物料自身: self.something='foo' 我是Python新手,太深了 楔块类=楔块类 mock1.return\u value=wedge\u类不工作。上下文错误如何在python单元测试中重写(而不是修补)单个方法,python,unit-testing,overriding,Python,Unit Testing,Overriding,我找了好几个小时了。找不到任何人想这么做。嗯 我相信我必须重写类实例中的单个方法。我不是说返回值=。我需要让讨论中的方法做一些涉及自我的事情 我会尽力把它分解。自由地解释并包括我尝试过的许多事情中的一件,但都不起作用 类设置类对象: def set_一些物料自身: 数据列表=函数不能在测试平台上运行 self.something=数据列表[0] self.something\u else=数据列表[1] 类对象: self.config=SetupClass assert self.config
uut=uut除了示例代码中的多个错误之外,我在咖啡馆里从头写起 问题主要是我使用return_值而不是side_效应来用我自己的子类“替换”修补过的类 我的需要,也许现在更清楚地重申了,是重写一个方法,在被测试单元UUT中的一个类中设置一些东西,但不模拟该类 该方法发出了几个“self.foo=bar”语句,我想出于测试目的更改这些语句。因此,模拟方法未使用的返回值是不够的。。。并且patch.object似乎丢失了类上下文,“self”未知等等 最后,这里是工作代码,做我需要的 导入单元测试 导入模拟 类设置类对象: def set_一些物料自身: 数据列表=[“数据不可用”,“在测试平台上”]崩溃! self.something=数据列表[0] self.something\u else=数据列表[1] 类受测试单元: 定义初始自我: self.config=SetupClass self.config.set_一些东西
assert self.config.something==“foo”类必须使用类UUT而不是def UUT启动,并且标识为off@Gang ... 哦,是的。只是打字错误。我已经编辑了十几次伪代码。很抱歉当前版本更接近我实际尝试的版本。def WedgeClass应该在类UnitTests之外吗?在一个函数uu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。。。是的,语法仍然明显错误,至少,该死。我现在回到了一台真正的计算机上,所以我将测试实际的代码并将其整理出来。谢谢你的提醒。