【发布时间】:2021-12-02 13:51:39
【问题描述】:
我正在创建一个 R 包。我有一个功能需要用户提供一些动态输入才能产生所需的输出。我目前使用readline() 作为动态输入法。问题是我不知道如何使它适用于roxygen2examples,也不知道如何使用testthat(或任何其他方法)正确测试它。
如果有更好的方法来获取用户输入,那就太好了。
这是一个与我的函数具有相同问题的最小函数。
#' Dynamic Input Example
#'
#' @param input A number
#'
#' @return Console input times 2 minus 1
#' @export
#'
#' @examples
#' exampler(4)
exampler <- function(input){
dynamic_input <- as.numeric(readline(prompt=paste("Give a value between", input*3-1, "and", input*7+2)))
return(dynamic_input*2-1)
}
【问题讨论】:
-
在您的示例中使用
\dontrun以使其免于示例测试。可以使用出色的 mockery 包来完成“testthat”测试(它可以在测试期间轻松模拟readline函数。