<分区>
您将如何解决以下问题?
我有一个验证 token (只是简单的 XML 文件)的 API。因此 API 指定了一堆验证方法,例如 validateTime(String tokenPath)
、validateFileHash(String tokenPath)
或 validateSomthingElse(String tokenPath)
。
API 已经用两种不同的语言实现,Java 和 C。我的任务是确保这两个版本表现相同。因此,如果 Java 在调用 validateTime("expiredToken.xml")
后抛出 TokenExpiredException
,C 应该返回相应的错误值(在本例中为预定义的 -4
用于 TOKEN_EXPIRED)。
好的老方法是用两种语言编写单元/集成测试。但是,这需要双倍的努力,因为我必须在 Java 和 C 中实现基本相同的测试。
我的想法是为测试用例定义一个 XML 模式,它看起来像这样。
<!-- TestCases.xml -->
<testcase>
<tokenpath>expiredToken.xml</tokenpath>
<apiMethod>validateTime</apiMethod>
<expectationJava>TokenExpiredException</expectationJava>
<expectationC>-4</expectationC>
</testcase>
<testcase>
...
</testcase>
此外,我将构建一个小型 Java 工具来解析 TestCases.xml 并直接调用两个 API 版本(使用 JNI for C)以使结果与预设预期相匹配。
您认为这是一个可行的方案,还是采用老办法更好?是否有处理此类任务的框架,或者从一开始就是一个糟糕的想法?