【发布时间】:2019-01-07 15:51:41
【问题描述】:
在尝试测试我的数据访问类时遇到错误:
原因:org.apache.ibatis.builder.BuilderException:解析 SQL Mapper 配置时出错。原因:org.apache.ibatis.datasource.DataSourceException
测试类:
@Tested
DataAccess dataAccess;
@Mock
Mapper mapper;
数据访问类:
private Logger logger;
private final Mapper mapper;
public DataAccess() {
String loggerCategory = new properties().getLoggerCategory();
logger = LoggerFactory.getLogger(loggerCategory);
mapper = DBControl.getAutoClosingMapper(
Mapper.class, DataSource.source, logger);
}
DBControl(错误来自哪里):
private static final SqlSessionFactory sqlMapper;
static {
Reader reader = null;
String resource = "configuration.database.xml";
reader = Resources.getResourceAsReader(resource);
//the exception is getting thrown from this line
sqlMapper = new SqlSessionFactoryBuilder().build(reader);
}
我在我的测试类中尝试了几种不同的 mockito 和 jmockit 注释,但每次都出现相同的错误。
我只需要模拟映射器。
【问题讨论】:
-
我认为问题在于 DBControl 中使用的静态块。我不确定这可以被嘲笑。也许您可以在测试模块中添加所需的 xml-File。
-
你能发布一些测试代码吗?你只发布了两个类变量。
-
@PhilNinan 测试类在初始化
DataAccess时抛出错误。它甚至没有参加考试。无论我尝试运行什么测试,错误都是相同的。
标签: java unit-testing mockito jmockit