【问题标题】:Spring, Eclipse, running Junit (or other type of) tests within a live spring application?Spring,Eclipse,在实时 Spring 应用程序中运行 Junit(或其他类型)测试?
【发布时间】:2011-04-25 07:02:35
【问题描述】:

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

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

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

我可能有点漫不经心,我​​猜有办法做到这一点,但目前它正在躲避我,不胜感激。谢谢

【问题讨论】:

    标签: java eclipse unit-testing spring junit


    【解决方案1】:

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

    不要问我细节;我是“unix 大师”……当谈到 javascript 时,我是一个自认的兔子。写它的人仍然在身边;所以我可以(下周)问他是否介意在网上发布。

    我认为整个设置非常整洁。大多数时候我们只是忽略断言邮件(我有一个 Outlook 规则,将它们全部直接发送到已删除的存储桶);除非我们在测试某些东西......这样我们就可以使用彼此的 GUI 单元测试来检测我们编写的东西中的“破损”。每次发布后,我都会关注它们几天。

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

    干杯。基思。

    【讨论】:

    • 很遗憾听到您的自动化测试失败。您能否简要介绍一下您使用了哪些工具,以及为什么会出错?
    • @Tom:我们使用了一个名为 QARun 的野兽,仅仅是因为我们已经从一个 VB 项目获得了一个(非常昂贵的)许可证。它根本不适合测试 Web 客户端……所以我们在 QA 的原语之上编写了一种元语言,它有自己的错误,就像 QARun 一样。整个事情太脆弱了。 UI 更改可能需要一天的时间来编写代码,然后需要一周的时间来更新所有触及该表单/组件的测试脚本。这是一场失败的战斗。基本上:改变太难了。我想 HtmlUnit(或其他东西)会更具成本效益。
    • 啊,一个悲伤的故事。我认为我们都经历过我们自己版本的那个不充分的工具/顶层/下降到疯狂故事至少一次。我们使用 HTMLUnit 进行 Web 界面测试,我们的体验比您的听起来要好(更多的是陷入疯狂的肤浅滑行)。但仍然不完美,因为它的 javascript 处理在被推动做复杂的事情时有点不稳定。如果我现在重新开始,我会使用 WebDriver。不过,我听说这有其自身的问题。这是一场艰难的比赛,这是底线。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2019-11-16
    • 1970-01-01
    • 2018-07-22
    • 2023-03-13
    相关资源
    最近更新 更多