自动生成单元测试

时间:2010-01-25 11:56:03

标签: java testing junit

我有一个Web工具,在查询时会根据URL中的参数返回生成的Java类。

我们从网络服务器检索的课程每天都在变化,我们需要确保他们仍然可以处理已知的输入。

请注意,这些类不测试Web服务器,它们在本地运行并将xml转换为自定义格式。我没有测试网络服务器。

然后必须将这些类放在特定的包结构中,编译并针对一组已知的输入数据运行,并与已知的输出数据进行比较。

我想每晚自动执行此操作,以确保生成的类正确无误。

实现这一目标的最佳方法是什么?

具体说明最佳方式:

  1. 从网络服务器检索代码并将其放在文件中
  2. 编译代码然后调用它
  3. 我确信junit和ant的组合能够实现这一目标,但是有没有标准的解决方案/方法呢?

4 个答案:

答案 0 :(得分:2)

首先,回答你的问题:不,我认为没有标准方法。这听起来很不寻常; - )

鉴于此,我要做的是将JUnit测试写入所有调用类GeneratedCode,然后,一旦下载代码,将类重命名为GeneratedCode,编译并运行你的单元测试。

答案 1 :(得分:2)

您的目标与持续集成相同; - )

对于这个简单的任务可能有点过分,但这是获取内容,编译内容和定期测试内容的标准方法。

E.g。你可以尝试hudson

答案 2 :(得分:0)

您应该为您的Web服务创建一个“模拟”界面,它(a)的行为方式相同,(b)返回已知答案。

然后,您应该使用实时Web服务进行一些其他集成测试,其中一个人查看结果并确定它们是否有效。

答案 3 :(得分:0)

您是否只能在Web服务上发布后测试生成的类?您无法在生成期间或之后进行测试?

如果生成的代码不复杂,一个想法是通过GroovyClassLoader加载它并对其运行测试。有关示例,请参阅this page