我使用的是Grails 3.2.7& 我是单元测试具有以下代码行的方法:
void abc(){
ApplicationContext ctx = Holders.grailsApplication.mainContext
def dataSource = ctx.getBean('dataSource')
}
内部单元测试(JUnit)任何人都可以帮助我:如何设置'数据源' applicationContext中的Bean?
我试过了:
applicationContext.beanFactory.registerSingleton("dataSource", DataSource)
但这不起作用。 谁能在这帮助我?
答案 0 :(得分:0)
所以,解决方案是:
在Junit Test课程中:
Class TestCl {
DataSource dataSource
@Before
public void setup() {
defineBeans {
def bb = new BeanBuilder()
bb.beans {
dataSource(BasicDataSource)
}
}
applicationContext.beanFactory.registerSingleton("dataSource", dataSource)
}
}
答案 1 :(得分:0)
我建议使用依赖注入来获取dataSource Bean,而不是通过应用程序上下文。
您可以执行以下操作:
Class SampleService {
def dataSource
def abc(){
//do the thing with the dataSource!
}
}
另外,我认为您需要集成测试而不是单元测试来实际测试持久性逻辑。 See this