构建基于Vaadin的应用程序的最佳方法是什么,以便我可以使用TDD(测试驱动开发)来创建应用程序?换句话说,我不想编写需要服务器或浏览器(甚至那些模拟器)的测试,因为那些可能太脆弱,太慢或两者兼而有之.
将GWT MVP模式转换为Vaadin的问题在某种程度上是相关的,因为我正在寻找用于使我的UI"逻辑"尽可能可测试的正确模式,但我不确定MVP是否转换为Vaadin的世界.
我遇到了TestPropertyValues,这里的 Spring Boot 文档中简要提到过:https : //github.com/spring-projects/spring-boot/blob/2.1.x/spring-boot-project/spring-boot-docs/src /main/asciidoc/spring-boot-features.adoc#testpropertyvalues
此处的迁移指南中也提到了这一点:https : //github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide#environmenttestutils
这两个示例都显示了一个environment将属性应用到的变量,但我找不到其他文档。
在我的测试中,属性设置来得太晚,无法影响@ValueSpring Bean的属性注入(via )。换句话说,我有一个这样的构造函数:
public PhoneNumberAuthorizer(@Value("${KNOWN_PHONE_NUMBER}") String knownRawPhoneNumber) {
this.knownRawPhoneNumber = knownRawPhoneNumber;
}
Run Code Online (Sandbox Code Playgroud)
由于上面的构造函数在测试代码有机会运行之前被调用,因此TestPropertyValues在构造函数中使用它之前,无法在测试中更改属性 via 。
我知道我可以使用propertiesfor 参数@SpringBootTest,它在创建 bean 之前更新环境,那么 的适当用法是TestPropertyValues什么?