【发布时间】:2020-03-08 14:40:51
【问题描述】:
我有一个从 Excel 文档中读取的 Spring Boot 应用程序。这目前由我的控制器使用的服务完成。
目前文档的路径是硬编码在服务类中的。我想知道,这是否是最好的方法。
我还想知道对我的代码进行单元测试的最佳做法。如何确保我与实际文件没有依赖关系。我的辅助方法是私有的。我在嘲笑它时遇到了麻烦。
【问题讨论】:
标签: spring-boot junit mojito
我有一个从 Excel 文档中读取的 Spring Boot 应用程序。这目前由我的控制器使用的服务完成。
目前文档的路径是硬编码在服务类中的。我想知道,这是否是最好的方法。
我还想知道对我的代码进行单元测试的最佳做法。如何确保我与实际文件没有依赖关系。我的辅助方法是私有的。我在嘲笑它时遇到了麻烦。
【问题讨论】:
标签: spring-boot junit mojito
您可以通过任何变量名在“application.properties”文件中提供路径。
例如:
my-file=/home/path/to/file.extension
然后,在您的服务类中,声明一个变量,如:
@Value("${my-file}")
private String filePath;
现在文件将具有您在应用程序属性中提供的值。当您的应用程序启动时,它会自动将您的文件路径绑定到您的变量中。这样,您就可以轻松修改路径。 Spring 框架将神奇地开箱即用地管理它。
【讨论】:
为了方便(易于部署、测试)和安全性(代码中的纯文本与环境变量),配置详细信息应为 externalized。这是一个很好的discussion 主题。
模拟是对其进行单元测试的方式。您应该更具体地说明您遇到的问题,恕我直言,最好在另一个问题中提出。
【讨论】: