有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Spring中的java用户相关bean定义

我正在创建一个基于Spring的Web应用程序,使用Spring将服务的实现添加到定义的接口中。到目前为止,还很标准。很好

我希望允许用户在运行时覆盖其会话的应用程序行为。为此,我希望spring根据用户会话更改界面后面的实现

它的一个用例是在INT上运行的自动测试用例,应该测试系统创建的电子邮件的输出。在INT上,有一个电子邮件服务配置为向我们的邮件服务器发送电子邮件。我不希望测试用例必须使用邮件协议检查邮件。我希望在自动测试用例运行的情况下,让电子邮件实现将电子邮件作为注释写入HTML,以便我的测试可以轻松检查结果。因此,还有一些这样的情况,在特殊情况下更改实现bean会很好

spring中有没有一个概念可以帮助我实现这样一个功能,还是我必须自己创建

附加信息:这都是关于自动验收测试的。测试运行在我们与maunual测试人员共享的系统上。 =>;手工测试人员想要得到一封真正的测试邮件 =>;自动测试通过不接收电子邮件来降低复杂性,只需以较少的依赖性检查电子邮件内容。 如果我们有两个系统,一个是为人类需求配置的,另一个是为自动化测试需求配置的,那就没有问题了。但事实并非如此,所以我需要一种在运行时改变系统行为的方法


共 (1) 个答案

  1. # 1 楼答案

    通常通过以下方式完成:

    1. 使用spring测试模块设置测试,该模块允许您创建用于测试的spring上下文,并将bean注入到测试类中
    2. 除了创建一个单独的spring概要文件,其中默认的邮件服务实现被替换为一个mock
    3. 编写一个测试用例,模拟用户通过编程完成的步骤,最后断言assertEquals("<expected_email_text>", mailServiceMock.getLastEmail())之类的内容

    从你的问题来看,不清楚你为什么会偏离上述标准方法。如果你解释了你的理由,也许会更容易找到一个合适的答案