side_effect for“ sys.argv”不管我设置了什么模拟时,返回1,1的元组。
由于某种原因,当我尝试将SYS.ARGV的前两个实例变为默认为1,1时,Side_fect并没有产生效果。
"""testing"""
def check_arg():
try:
num1 = int(sys.argv[1])
num2 = int(sys.argv[2])
except IndexError:
return False, False
except ValueError:
return False, False
else:
if num1 < num2:
return num1, num2
# elif num1 == num2:
# return False, False
else:
return num2, num1
"""test"""
@mock.patch("sys.argv", side_effect=["9", "2"])
def test_check_arg(self, mocktest):
checkarg = check_arg()
self.assertEqual(checkarg, (2, 2))
“““
问题: ... ,第23行,在test_check_arg中 self.Assertequal(Checkarg,(2,2)) assertionError:元组不同:(1,1)!=(2,2)
第一个不同元素0: 错误的 2
- (1,1)
- (2,2)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在这种情况下,似乎不是您需要的
side_effect
。如果使用的话就足够了:这应该可以正常工作。但是阅读有关
sys.argv
的文档()sys.argv [0]
始终包含脚本的名称更好地喜欢:在这种情况下,似乎不是您需要的
side_feft
。如果您使用的话就足够了:It seems that
side_effect
is not what you need in this case. It's enough if you use:This should work fine. But reading the docs about
sys.argv
(https://docs.python.org/3/library/sys.html#sys.argv)sys.argv[0]
always contains the name of the script so it will probably be better like:It seems that
side_effect
is not what you need in this case. It's enough if you use: