假设我有功能
mean_wrapper <- function(x) {
mean(x)
}
如何检查mean
函数是否被调用?
例如,如果我想在单元测试中检查此行为,则使用用例。
修改
我做了另一个例子来更清楚。让我们考虑一下这个功能:
library(readr)
library(magrittr)
read_data <- function(file_name) {
read_csv(file_name) %>%
validate_data()
}
read_data
的目的是阅读CVS文件并对其进行验证。 validate_data
对数据执行一些检查。如果其中一个失败,则会引发错误,否则返回输入对象。
我想测试这两个功能但我不希望复制我在validate_data
的情况下为read_data
编写的相同测试。无论如何,我必须检查后一个函数是否已在read_data
中调用,所以我喜欢写一个测试来为我做这个。
答案 0 :(得分:1)
您可以追踪mean
:
trace(mean, tracer = quote(message("mean was called")))
mean_wrapper(3)
#Tracing mean(x) on entry
#mean was called
#[1] 3
untrace(mean)
#Untracing function "mean" in package "base"
您可以使用任何内容(例如,将封闭环境中的变量赋值)作为跟踪器,而不是消息。