python Bottle boddle - patch(... side-effect="Exception) 不工作我做错了什么

问题描述

使用:Python 3.7、Bottle、Boddle、请求

我有一个要测试的模块(服务器),还有一个带有测试代码的模块(测试)。

经过测试的代码(server.py):

@bt_app.post("/")
def server_post():
    try:
        bt.request.forms.get("msg",None)
    except bt.BottleException:
        print("BottleException")

测试代码(test.py):

def test_test():
    with boddle(),\
         patch(
             "server.bt.request.forms.get",side_effect=server.bt.BottleException,),\
         pytest.raises(server.bt.BottleException):
                server.server_post()

我首先运行'server',它成功设置了一个服务器。

然后我运行“test”,它成功地访问并测试了服务器。

我希望测试会引发“BottleException”和 PASS,但事实并非如此。它确实失败了:“失败:没有 RAISE

谁能告诉我我做错了什么?

谢谢

解决方法

尝试不使用别名。

...
with pytest.raises(bottle.BottleException):
...