我目前正在编写Java客户端服务器应用程序.所以我想实现两个库,一个用于客户端,一个用于服务器.客户端服务器通信有一个非常严格的协议,我不想用JUnit测试.
作为构建工具我使用Maven和Husdon Server进行持续集成.
实际上我没有任何好主意如何测试这些客户端/服务器库.
我有以下方法:
只需编写一个虚拟客户端来测试服务器并编写一个虚拟服务器来测试客户端. 缺点:不幸的是,这将导致许多额外的工作.我无法100%确定客户端和服务器可以一起工作,因为我不确定测试是否完全相同.
编写一个单独的测试项目,将客户端和服务器一起测试.
缺点:单元测试不属于自己的项目,因此Hudson不会自动运行它们.在其中一个库中更改任何内容的每个人都必须手动运行测试以确保一切正确.此外,我不会收到任何代码覆盖率报告.
有没有比这更好的测试代码方法?也许测试一个Maven多模块项目,或类似的东西.
我希望任何人都能找到一个很好的解决方案.
谢谢.
我正在尝试提取JDBC数据库驱动程序的数据库元数据.
现在我面对的是我无法向自己解释的文档的一部分:
方法DatabaseMetaData.getColumns(...);(JavaDoc)声明了两个不同的"可空性"列:
NULLABLE int => is NULL allowed.
columnNoNulls - might not allow NULL values
columnNullable - definitely allows NULL values
columnNullableUnknown - nullability unknown
和
IS_NULLABLE String => ISO rules are used to determine the nullability for a column.
YES --- if the column can include NULLs
NO --- if the column cannot include NULLs
empty string --- if the nullability for the column is unknown
我能想到的两个不同专栏的唯一想法是:
那个定义table列在读取时可以为null,而另一个表明在此表列中可以为null.但我无法确定这个想法的正确性.
有谁知道这两列之间有什么区别?有没有关于JDBC API这一部分的更详细信息?
谢谢你的帮助.