5

我正在学习使用 R 进行我的第一个单元测试,并且我在 R Markdown 文件中编写我的代码,以便轻松提交简短的研究报告。同时,我想测试我在这些文件中使用的函数,以确保结果是合理的。

这就是问题所在:R Markdown 文件旨在进入 HTML 编织器,而不是 RUnit 测试工具。如果我想将一个函数加载到测试代码中,我有几个选择:

  1. 从 Markdown 文件中复制粘贴代码块,将 Markdown 文档中的代码与测试代码分离
  2. 把我的测试代码放在 Markdown 文件里面,这样会导致报告难以理解(也许最后还能忍受)
  3. 编写代码,先进行测试,然后将其作为库包含在 Markdown 代码中,这消除了将代码包含在报告正文中的信息特征

有没有更明智的方法来避免这些方法的缺点?

4

1 回答 1

8

你可以做这样的事情

## Rmarkdown file with tests

```{r definefxn}
foo <- function(x) x^2
```

Test fxn

```{r testfxn}
library(testthat)

expect_is(foo(8), "numeric")
expect_equal(foo(8), 6)
```

当然,通过的测试不会打印任何内容,但失败的测试会打印有关失败的有意义的消息。

于 2013-11-06T01:54:34.397 回答