我有一个简单的游戏,它由两个项目组成:客户端和服务器。现在我想测试它们是否正确交互。
设置是:一个 Maven 父项目,服务器/客户端作为子模块。
我现在不知道如何测试交互:我是否能够在junit测试或集成测试中以某种方式(究竟如何?)启动这两个项目?这样我就可以收听一个项目的输出,验证它并将其发送给另一个?还是我应该走另一条路?
我有一个简单的游戏,它由两个项目组成:客户端和服务器。现在我想测试它们是否正确交互。
设置是:一个 Maven 父项目,服务器/客户端作为子模块。
我现在不知道如何测试交互:我是否能够在junit测试或集成测试中以某种方式(究竟如何?)启动这两个项目?这样我就可以收听一个项目的输出,验证它并将其发送给另一个?还是我应该走另一条路?
对于集成测试,创建一个单独的 pom 添加两个项目作为测试依赖项。然后在测试开始前使用 testng beforeclass hooks 或 maven failsafe plugin hook 启动服务器,测试结束后关闭服务器。
通常,您从测试启动服务器并从模拟客户端行为的测试发送请求并检查服务器响应是否符合您的预期。
这听起来像是一个集成测试的好案例。我会这样做:
integrationtests
并使用 -Dintegrationtests 激活它正如 Evgeniy 建议的那样,您当然可以将集成测试放在现有模块之一中,而我的建议是将其拆分到第三个模块中。
如果您需要有关如何使用 maven 配置文件进行集成测试的帮助,只需 google 一下,或者随时询问您是否有具体问题。
祝你好运。