从你的问题我猜有一些误解......
ScoutServerTestRunner
and与服务器@ServerTest
类似ClientServerTestRunner
,@ClientTest
但用于服务器。您将需要它来测试服务器。
这些类位于org.eclipse.scout.rt.testing.server
捆绑包中。
如果在客户端测试中需要服务器,则有两种可能性:
A/ 启动服务器
你可以启动一个服务器

这可能不是普通服务器(生产中的服务器),因为您想控制数据库或一些外部服务。身份验证也可能略有不同(为了控制它并与您的测试兼容)
对于 maven 构建中的集成,maven-cargo 插件可用于在执行客户端测试套件之前启动您的服务器。
B/ 模拟服务器服务
创建调用服务器的 ProxyService 的每个服务调用都可以替换为模拟(仅限客户端)。
![使用模拟服务器服务进行侦察测试]](https://i.stack.imgur.com/KAZLm.png)
这是单元测试的首选方式,因为您不依赖已部署的服务器。您还可以为每个测试定义服务器答案是什么。这个解决方案最初可能需要更多的工作,但在我看来这是值得的。
要注册替代服务,您可以使用:
TestingUtility.registerServices(
<activator instance>,
<priority>,
<service instances>
);
具有较高优先级的服务将获胜。
在每次测试中,不要忘记取消注册您已注册的替代服务。
SmartFields 使用 CodeTypes 或 LookupCalls。如果是 a LookupCall
,LookupCall
则可能是通过 a 调用服务器LookupService
。如果是 a CodeType
,则SmartField
在内部使用CodeLookupCall
依赖于 a 的类ICodeService
。
在这两种情况下,如果您想在没有服务器的情况下运行测试,您需要确保客户端使用需要服务器的所需服务的替代实现。