Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 模拟调用另一个方法的方法_Python_Mocking_Python Unittest - Fatal编程技术网

Python 模拟调用另一个方法的方法

Python 模拟调用另一个方法的方法,python,mocking,python-unittest,Python,Mocking,Python Unittest,假设我有一个测试类TestSuite,其方法test\u database\u不可访问。我想测试在另一个类中运行的方法,AA_database.run调用是_primary。我可以通过模拟来返回真值 我试过了 使用patch.objectAADatabase时,“主”与“模拟”是否相同: self.dbsize=2.1e10 self.returncode=2 \u primary\u mock.return\u value=True self.AADatabase.run 但我明白了 Attr

假设我有一个测试类TestSuite,其方法test\u database\u不可访问。我想测试在另一个类中运行的方法,AA_database.run调用是_primary。我可以通过模拟来返回真值

我试过了

使用patch.objectAADatabase时,“主”与“模拟”是否相同: self.dbsize=2.1e10 self.returncode=2 \u primary\u mock.return\u value=True self.AADatabase.run 但我明白了

AttributeError:“TestSuite”对象没有属性“AADatabase”

以前,我只是简单地尝试过

 with patch.object(AADatabase, "is_primary") as is_primary_mocked:
        self.dbsize = 2.1e10
        self.returncode = 2
        is_primary_mocked.return_value = True
        AADatabase.run()
但是我收到了一个不同的错误信息


如果补丁是这里的错误工具,我不介意切换到另一个。我尝试了很多不同的方法。

以下是基于您提供的代码的单元测试解决方案

main.py:

A级数据库: @类方法 def是_primarycls: 返回错误 @类方法 def runcls: 返回cls.is_primary test_main.py:

导入单元测试 从主导入数据库 从unittest.mock导入修补程序 TestAdatabaseUnitTest.TestCase类: def测试_数据库_不可访问自己: 对于patch.objectAADatabase,“is_primary”与“is_primary_mock”: \u primary\u mock.return\u value=True res=AADatabase.run 自我资产 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': unittest.main 单元测试结果和覆盖率报告:

. ----------------------------------- 在0.001s内运行1次测试 好啊 姓名Stmts未找到封面 ------------------------------------ src/stackoverflow/58862981/main.py 5 1 80%4 src/stackoverflow/58862981/test_main.py 11 0 100% ------------------------------------ 总数16194% 源代码: