Java 测试,包括对远程服务的调用
我希望测试一段时间后调用远程服务的结果会反映在本地数据库中的代码 有谁能建议我该怎么做 过程如下: 一种方法使用web服务在远程系统上创建实体。一旦创建了实体,实体就通过涓涓流反馈回本地系统(这不是要测试的代码的一部分)。然后,测试应查询本地数据库,以确保已正确创建实体。一个复杂的问题是,使用实体更新本地数据库所需的时间是可变的 欢迎任何意见和建议 先谢谢你 然后,测试应查询本地数据库,以确保已正确创建实体 是否要测试DB引擎是否可以插入有效值。。?我希望不是。您不需要查询数据库来测试实体创建 您应该测试的是您的逻辑是否能够正确生成这些值,或者它是否能够构建正确的Java 测试,包括对远程服务的调用,java,web-services,unit-testing,testing,junit,Java,Web Services,Unit Testing,Testing,Junit,我希望测试一段时间后调用远程服务的结果会反映在本地数据库中的代码 有谁能建议我该怎么做 过程如下: 一种方法使用web服务在远程系统上创建实体。一旦创建了实体,实体就通过涓涓流反馈回本地系统(这不是要测试的代码的一部分)。然后,测试应查询本地数据库,以确保已正确创建实体。一个复杂的问题是,使用实体更新本地数据库所需的时间是可变的 欢迎任何意见和建议 先谢谢你 然后,测试应查询本地数据库,以确保已正确创建实体 是否要测试DB引擎是否可以插入有效值。。?我希望不是。您不需要查询数据库来测试实体创建
INSERT
命令字符串。如果是这样的话,应该考虑到与服务和实际DAO/DB相关对象的依赖关系
在单元测试中,您希望同时关注单个特性(因此称为单元测试)。在这种情况下,我假设它是正确的实体/值创建。测试整个过程听起来更像是一个过程。这就是您想要做的吗?您肯定在做集成测试。这在JUnit中是完全可行的,但是您始终需要知道您正在测试什么,以及您可以测试什么 首先,您需要知道谁控制远程服务。如果是你,太好了。如果不是你,小心点 假设远程服务不在您的控制之下。您正在向远程服务发送请求,它正在处理该请求,并将请求发送到本地数据库。因此,您无法影响需要多长时间,或者数据将如何写入本地数据库,或者将发生什么样的数据转换 所以,您所能测试的就是,您发送的一些数据在一段时间后将最终进入数据库。因此,要测试发生了什么事情,您需要做的就是测试数据库中是否有适当的行。这可能只是一个简单的
选择计数(*),其中…
[*]
如果远程系统是稳定的,不经常更改,那么您可以在本地数据库中测试行的更多细节,但请记住这一点
[*]当然还有适当的错误条件。不确定要在此处测试的确切零件。您似乎想测试整个周期,但不想测试将实体复制到本地数据库的代码?你能澄清一下吗?没错。我想测试实体是否具有正确的属性,但不需要测试将实体写入本地数据库的代码。这是一个“本地数据库中的内容是否符合我们的预期?”@mip:“本地数据库中的内容是否符合我们的预期”-听起来您确实想测试您的DB引擎是否能够正常工作。为什么呢?您从未测试过这些东西—您需要对ORM映射、查询创建、从模块到DAL的信息流进行单元测试,而这正是您停止的地方。您假设DB可以完成它的工作。@jimmy_keen我正在尝试测试原始web服务调用和写入本地数据库的实体之间发生的处理。抱歉,我没有很好地解释这一点。是的,这可能被归类为集成测试。非常有用。非常感谢你。你知道这类测试的任何例子对我来说可能有用吗?