我们必须测试远程机器上的一些API,这些API需要使用fitnesse进行测试。
我们有一些先决条件。
- 我们需要使用Web服务来测试这些API。API的jar(比如xyz.jar)位于服务器端。Web服务的部署位置
- 输入必须使用fitnesse。xyz.jar在fitnesse方面不可用。因为客户端fitnesse需要独立于xyz.jar中的更改,因此它对未来的所有版本都是通用的
- 用户将在wiki页面中给出要测试的类的方法以及输入数据
这里的一个假设是使用维基页面上给定的输入值和API名称:通过反映API将从Web服务调用。
样本数据流
|适用性|---->|业务层|-->|Webservice代理|---->|Webservices|---->|1xyz.jar |
我们面临着一些问题,比如。
-
有些API类似于doSomething(CustomId someId、DBLoaderType、DBFilter filter、boolean exclude)返回java.util.List。但是这些CustomId、DBLoaderType、DB filter、SomeNavigationSystem不是可序列化的对象。
-
一些API返回的值可以是Java原语、包装器或自定义对象或自定义对象集合类型。(布尔值,布尔值,列表映射,映射>如何验证退货类型?
-
我们面临的一个问题是:如何将fitnesse的输入数据输入到java层(这将调用Web服务来测试API)如果API的类型是registerUsersForMessage(int messageId,List users,boolean forceRegister,int maxBatch,Map),如何将这些数据从fitnesse维基页面传递到java层?有没有什么方法可以把输入数据推送到"某个地方",这样测试人员的wiki页面就会干净?
欢迎对此提供任何帮助。或者任何可能引发头脑风暴的问题也欢迎。提前谢谢。
我不确定你在这里测试的是什么类型的应用程序,但我强烈建议你只在Fitnesse测试页面中保留业务细节和逻辑,并将所有关于API和其他技术细节的东西移到fixture代码中。它使固定装置更加复杂,但它们所处的环境中,您有一整套强大的工具来管理这种复杂性。
如果您考虑的是验证API函数的返回类型,那么这听起来是一种完全不同的测试。
有一个web服务可以让您的应用程序工作,这一事实对Fitnesse测试应该是透明的,除非您正在测试web服务本身。