Java Spring、Eclipse,在live Spring应用程序中运行Junit(或其他类型的)测试?

Java Spring、Eclipse,在live Spring应用程序中运行Junit(或其他类型的)测试?,java,eclipse,unit-testing,spring,junit,Java,Eclipse,Unit Testing,Spring,Junit,我不太确定我是否遗漏了一些非常明显的东西,但我在这个主题上的搜索并没有返回有用的结果。我最近对单元测试和使用模拟对象有了更多的了解。这对于孤立地测试对象来说是很好的,但是在一个复杂的SpringMVC应用程序中,通过AJAX与大量Javascript代码交互,我有时会遇到一些问题,比如传入的值不是它需要的值,并导致一些问题。当然,它仍然满足类型,例如作为字符串,但它可能为null,这将导致某些内容中断行 我想,如果我可以在我的应用程序的实际类中(而不是在一个单独的单元测试中)执行以下操作,那么它

我不太确定我是否遗漏了一些非常明显的东西,但我在这个主题上的搜索并没有返回有用的结果。我最近对单元测试和使用模拟对象有了更多的了解。这对于孤立地测试对象来说是很好的,但是在一个复杂的SpringMVC应用程序中,通过AJAX与大量Javascript代码交互,我有时会遇到一些问题,比如传入的值不是它需要的值,并导致一些问题。当然,它仍然满足类型,例如作为字符串,但它可能为null,这将导致某些内容中断行

我想,如果我可以在我的应用程序的实际类中(而不是在一个单独的单元测试中)执行以下操作,那么它可能会很有用。有点像调试模式,但它以单元测试的形式运行应用程序,我会定期运行它,并能够与之交互(手动测试),如果出现违反我在其中放置的测试之一的错误,它会告诉我。我意识到我可以用
System.out.println
来实现这一点,但我倾向于使用太多,也许有时,因此很难筛选所有的输出来挑选这样的东西,所以我认为,如果它在发生事情时打开常规的Junit GUI对话框会更好

String somestring
if (somestring != null) {
boolean checkSomestring = true;
}
else {
boolean checkSomestring = false
}
assertEquals(checkSomestring, true);

我可能有点漫不经心,我想有一个方法可以做到这一点,但它是目前我逃避,将感谢任何建议。谢谢

我们刚刚在javascript中获得了一个小断言(bool shouldBeTrue,string failureMessage)函数。当它失败时,它会发送一个记录器请求。。。只是一个带有url编码参数的GET请求:dateTime、machineName、currentCocument和failureMessage。web服务器只是将其写入日志文件。然后,一个“tailing作业”(基于“tail-f”的KornShell脚本)定期(每分钟,从内存中)提取消息行并将它们发送给系统的开发人员电子邮件组。同一套件用于多个系统

不要问我细节;我是“unix大师”。。。当涉及到javascript时,一个自认的兔子。但写这本书的那个人仍然存在;所以我可以(下周)问他是否介意在网上发表

我认为整个装置相当整洁。大多数情况下,我们只是忽略断言邮件(我有一个outlook规则,它直接将邮件发送到已删除的bucket);除非我们在测试某些东西。。。通过这种方式,我们可以使用GUI的相互单元测试来检测我们编写的内容中的“中断”。每次发布后,我都会关注他们几天

顺便说一句:有一次我们尝试了自动网络应用测试。我们花了一大笔钱在它上面,直到我们发现我们正在使用我们的好软件来测试我们糟糕的测试脚本。。。我们基本上是厌恶地放弃了。但那是几年前的事了,我相信这方面的情况已经有了显著的改善,所以可能值得再看一看;至少针对系统的“关键”功能


干杯。Keith。

很抱歉听到您的自动测试失败。你能简单介绍一下你使用了什么工具,以及为什么会出错吗?@Tom:我们使用了一个名为QARun的beast,仅仅是因为我们已经从一个VB项目获得了一个(非常昂贵的)许可证。它根本不适合测试web客户端。。。所以我们在QA原语的基础上编写了一个元语言,它有自己的bug,QARun也是如此。整个事情太脆弱了。UI更改可能需要一天的时间来编写代码,然后需要一周的时间来更新涉及该表单/组件的所有测试脚本。这是一场失败的战斗。基本上:这太难改变了。我猜HtmlUnit(或其他)会更划算。啊,一个不幸的故事。我想我们都至少经历过一次我们自己版本的那个不合适的工具/顶层/堕落到疯狂的故事。我们使用HTMLUnit进行web界面测试,我们的体验比你的声音要好(更像是一种肤浅的疯狂体验)。但仍然不是完美的,因为它的javascript处理在执行复杂任务时有点不稳定。如果我现在重新开始,我会使用WebDriver。不过,我听说这本身也有问题。这是一场艰苦的比赛,这是底线。