1

我有一组从 Ruby 应用程序调用的 R 函数,并想测试它们。R 函数从 Postgres 数据库访问数据,因此要编写测试,我需要使用一些示例数据填充测试数据库。

我想避免在每个测试用例中清理数据库。如果我可以在每次测试之前启动事务并在之后回滚事务,那就太好了。

此页面http://r-pkgs.had.co.nz/tests.html的“编写测试”部分的最后一段让我认为不可能在每个测试用例之前执行代码块。

有谁知道任何创造性的工作?我正在考虑分叉项目并添加功能,但想确保我不会重新发明轮子。

4

1 回答 1

0

对于任何偶然发现这一点的人,我最终为 test_that() 创建了一个包装函数,我在从 postgres 获取数据时使用它。以下是我的解决方案:

db.test_that <- function(description, test_code) {
    dbGetQuery(database_connection, 'BEGIN TRANSACTION')

    test_that(description, test_code)

    dbRollback(database_connection)
}
于 2015-07-09T22:05:49.343 回答