首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Spring-wired库与robotframework结合使用

将Spring-wired库与robotframework结合使用
EN

Stack Overflow用户
提问于 2011-08-11 17:13:42
回答 2查看 834关注 0票数 0

我有一个用于集成测试的详细的Spring bean设置。现在,我正在考虑编写一个Robot库来向Robot测试公开我的测试数据创建/行为执行/断言方法。

然而,我从the Robot Framework user guide那里了解到的是,Robot只能通过调用构造函数来实例化库类。这很糟糕,因为我更愿意让Spring来管理我的实例。

理想情况下,我希望能够为Robot提供应用程序上下文的路径和库的bean名称。如果做不到这一点,我希望Robot能够调用静态工厂方法而不是构造函数,这样我就不会被迫创建新的实例。

我想到的一种解决办法是在静态初始化器中创建Spring上下文,并通过从该上下文获取bean来连接依赖项。

我最初的类看起来像这样:

代码语言:javascript
复制
public class MyAwesomeTests {

    @Autowired    
    private ThisHelper thisHelper;

    @Autowired    
    private ThatHelper thatHelper;

    // implementations of test steps and such

}

因此,我将把上面的@Autowired字段改为protected,并创建一个子类来静态地初始化Spring上下文,并定义一个机器人友好的构造函数:

代码语言:javascript
复制
public class RobotFriendlyTests extends MyAwesomeTests {

    private static final ApplicationContext CONTEXT = new ClassPathXmlApplicationContext(...);

    public RobotFriendlyTests() {
        this.thisHelper = (ThisHelper) CONTEXT.getBean("thisHelper");
        this.thatHelper = (ThatHelper) CONTEXT.getBean("thatHelper");
    }
}

这应该是可行的,但感觉有点笨拙。有没有更好的办法让我考虑?更好的是,有没有Robot扩展已经为我做了这件事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-11 18:20:48

您是否考虑过使用Spring,那么即使是由普通new创建的实例也将成为spring托管bean。

@参阅Spring Reference章节7.8.1 Using AspectJ to dependency inject domain objects with Spring

票数 1
EN

Stack Overflow用户

发布于 2011-09-01 12:23:47

有一个Robot Framework扩展支持使用Spring连接测试库,请看:http://code.google.com/p/robotframework-javalibcore/wiki/SpringLibrary

我不能完全确定它是否支持你的情况,因为我对Spring一点也不熟悉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7023452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档