spring mvc html 交互,测试Thymeleaf表单/ Spring MVC Controller交互的最佳方法

我正在使用Thymeleaf和Spring MVC开发Spring Boot应用程序,并且在代码中遇到了一个错误,有人将Spring

MVC模型绑定到2个不同的HTML表单字段:

这导致控制器模型中的名称字段被设置为以逗号分隔的值的字符串。例如“

Steve,Steve”。我已解决问题,但我想知道为此编写回归测试的最简单方法。有一个Spring

MVC测试框架,可以在本博客文章中使用,但我真正要测试的是呈现的模板与控制器之间的交互,而不仅仅是控制器。

我可以使用selenium测试,但是最近我读了这篇Martin Fowler bliki /

article(blickticle?),其中他说:

特别是一个常见的问题是,团队将端到端测试,UI测试和面向客户的测试的概念混为一谈。这些都是正交特性。

我认为这是一个很好的观点。我想我想写的是一个UI组件(集成?)测试。比加载整个页面要小。仅测试表单生成和提交的内容。

我的另一个想法是,最好通过静态分析工具来捕获此类错误,但这超出了我的范围。

在这个项目中,我意识到Spring MVC与HTML表单之间的交互是常见的错误地方,因此,有一种方法可以测试这些交互是很不错的。

编辑:

经过进一步考虑,我认为这些是我测试中要采取的步骤:

从模板的百里香模板中选择标签并进行渲染,在模型中传递适当的数据

可能以编程方式(从Java)编辑渲染的表单值以模拟JavaScript交互。

根据呈现的表单生成浏览器的http POST请求。

使用Spring用于将POST请求转换为控制器的model参数的任何内容

要么调用控制器并验证结果,要么断言模型已正确创建

我想我可以使用Thymeleaf的片段选择器或将表单重构为单独的模板来实现第一。#2我可以轻松地使用JSoup。我不确定该怎么做,是#3和#4。#3我也许可以写我自己,这取决于HttpServletRequest模拟的工作方式。#4似乎必须在spring某个地方上市,但我是Spring的新手。

更新:

将WebDataBinder视为#4的可能解决方案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值