我正在玩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批注,但是仍然存在相同的问题。