小编Jie*_*Wei的帖子

python side_effect-方法的模拟行为

在模拟中,我希望某个函数在测试中返回新值。这就是我做到的。

Class MyClass:

      my_var = None  

      def foo(self, var1):
          return somevalue

      def bar(self):
          my_var = foo(1)

Class TestClass(unittest.TestCase):
      myClass = MyClass() 

      def _side_effect_foo(var1):
           if condition:
                return new_value

      @patch("MyClass", "foo", side_effect='_side_effect_foo')
      def test_foo(self):
           self.myClass.bar()
Run Code Online (Sandbox Code Playgroud)

这给我一个错误:

无法将kwarg传递给我们未创建的模拟。

我使用的side_effect格式正确吗?

谢谢你的帮助!

python side-effects mocking python-unittest

6
推荐指数
1
解决办法
2266
查看次数

获取命令的退出代码

例如,我有一个命令 commandA 并希望在执行 commandA 后获取退出代码。CommandA 预计会失败,所以我们应该得到的退出代码是 1。

如果我在终端中输入 command 作为commandA;echo $?,屏幕上会显示 1 。然而,当我用 python 做的时候,事情出错了。

我试图用os.system(commandA)or调用 commandA subprocess.call(commandA.split()),然后调用os.popen('echo $?').read(),结果为 0。

os.popen('commandA;echo $?').read() 给了我一个正确的结果,但是 commandA 的过程没有显示在屏幕上,这是我不希望它发生的。

python subprocess os.system

2
推荐指数
1
解决办法
5258
查看次数