我目前正在学习使用 django 和 spyne 构建 SOAP 网络服务。我已经使用单元测试成功地测试了我的模型。但是,当我尝试测试所有这些 @rpc 函数时,我一点运气都没有。
我在测试这些@rpc 函数时尝试了: 1. 获取模型数据库中的虚拟数据 2. 在 localhost:8000 启动服务器 3.创建一个可以与localhost:8000通信的suds.Client对象 4. 尝试从 suds.Client 对象调用 @rpc 函数,并测试输出是否符合我的预期。
但是,当我运行测试时,我认为测试被位于 localhost:8000 的正在运行的服务器阻止,因此在服务器运行时无法运行测试代码。
我试图让服务器在不同的线程上运行,但这让我的测试更加困惑。
我在网上尽可能多地搜索,没有找到可以回答这个问题的资料。
TL;DR:如何使用单元测试来测试 @rpc 函数?
最佳答案
我相信如果您在测试中使用服务,那么该测试不应该是单元测试。
你可能想考虑使用factory_boy或mock,它们都是python模块来模拟或伪造一个对象,例如,伪造一个对象给一个响应您的 rpc 调用。
关于python - 如何测试 SOAP Web 服务的 RPC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39274850/