在Scala中使用柑橘框架FTP支持

时间:2019-06-11 10:49:04

标签: spring scala testing autowired citrus-framework

我正在玩Scala中的柑橘框架。我的第一个目标是定义一个基本的测试,该测试使用citrus-framework提供的FTP客户端。使用此FTP客户端的测试类为:

@ExtendWith(value = Array(classOf[CitrusExtension]))
@ContextConfiguration(classes = Array(classOf[EndpointConfig]))
class CitrusFtpExample extends Matchers {

  @BeanProperty
  @Autowired
  val ftpClient : FtpClient = null

  @Test
  @CitrusTest
  def runFtpConnectionTest(@CitrusResource runner: TestRunner): Unit = {
    runner.send(SendMessageBuilder => SendMessageBuilder
      .endpoint(ftpClient)
      .message(FtpMessage.command(FTPCmd.MKD).arguments("todo")))
  }

用于配置所需的FTP客户端的类为:

@Configuration
class EndpointConfig {

  @Bean
  def ftpClient: FtpClient = {
    CitrusEndpoints.ftp()
      .client()
      .port(22222)
      .username("anonymous")
      .timeout(10000L)
      .build()
  }
}

两个类都在类似maven的包中定义 structure(忽略citrus.ftp.user.properties,以后的citrus FTP服务器应使用这些属性。)

在执行过程中,由于未正确设置定义的FtpClient端点,因此使用的运行程序无法发送定义的消息:

com.consol.citrus.exceptions.TestCaseFailedException: Neither endpoint nor endpoint uri is set properly!

我认为正确注入所需的FtpClient存在问题。但是我无法找出确切的问题。

编辑:我还尝试通过名称显式限定Bean并在注入的字段中添加@Qualifier批注,但是仍然存在相同的问题。

0 个答案:

没有答案