Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 发电机组自动测试_Java_Testing_Junit - Fatal编程技术网

Java 发电机组自动测试

Java 发电机组自动测试,java,testing,junit,Java,Testing,Junit,我有一个web工具,当被查询时,它会根据URL中的参数返回生成的Java类 我们从Web服务器检索的类每天都在变化,我们需要确保它们仍然能够处理已知的输入 注意:这些类不测试Web服务器,它们在本地运行并将xml转换为自定义格式。我不是在测试Web服务器 然后,这些类必须放在特定的包结构中,并根据已知的输入数据集编译和运行,并与已知的输出数据进行比较 我想每天晚上都自动这样做,以确保生成的类是正确的 实现这一目标的最佳方式是什么 具体来说,最好的方法是: 从Web服务器检索代码并将其放入文件中

我有一个web工具,当被查询时,它会根据URL中的参数返回生成的Java类

我们从Web服务器检索的类每天都在变化,我们需要确保它们仍然能够处理已知的输入

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

然后,这些类必须放在特定的包结构中,并根据已知的输入数据集编译和运行,并与已知的输出数据进行比较

我想每天晚上都自动这样做,以确保生成的类是正确的

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

具体来说,最好的方法是:

  • 从Web服务器检索代码并将其放入文件中
  • 编译代码,然后调用它
  • 我相信junit和ant的混合将能够实现这一点,但是有没有标准的解决方案/方法呢?

    您应该为您的web服务创建一个“模拟”接口,它(a)以相同的方式运行,(b)返回一个已知的答案


    然后,您应该对live web服务进行其他一些集成测试,让用户查看结果并确定它们是否有效。

    首先,回答您的问题:不,我认为没有标准的方法可以实现这一点。这听起来很不寻常;-)


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

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

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


    例如,您可以尝试。

    您能否仅在生成的类发布到Web服务上后测试它们?您没有办法在生成期间或生成之后进行测试


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

    类似的问题在你提问前18分钟被问到:你可能也想追踪一下:)更新:你们都来自伦敦。。同事?:既然这一个提供了更多的细节,我们投票关闭另一个,作为这一个的复制品怎么样?哈哈哈,不,我们不合作。伦敦是一个相当大的地方。感谢您的帮助我不确定它们是否彼此重复…另一个问题是如何自动生成java代码的单元测试,这是如何根据已知良好的输入/输出测试一些随机代码。我认为这是一个不同的问题。嗨,我刚刚澄清了这个问题,这不是为了测试Web服务,我只是从中检索类。我讨厌模拟。通常一开始创建web服务的工作量是创建web服务的两倍,最后你会花费所有的调试时间试图找出错误是在web服务中还是在模拟中。@Paul Tomblin:对与错。这应该是更多的工作。如果您的模拟需要大量调试,那么您对所模拟的内容理解不够。如果Web服务定义不好,那么这就是课程的标准。调试mock通常比调试应用程序简单,因此从长远来看,它是平衡的。更多的前期时间来构建模拟。对我来说,任务更多的是构建自动化,而不是持续集成。hudson是一个很好的建议,但我会首先使用maven(或ant)并使用hudson来执行构建脚本(请欣赏伟大的基于web的报告:)