如何创建一个包含local_mock的函数?

问题描述

当前,我正在研究多个UnitTest,并且我的测试还包含模拟。 为了“传递”我函数函数部分,我从testthat包中应用了local_mock()函数

但是,有几个函数需要应用local_mock函数。 它们具有不同的结构,但参数数量相同。

因此,我创建了一个如下函数

.apply_local_mock = function(Function,File){
   local_mock(Function = function(Argument1,Argument2,Argument3) {
      result = .readCsv(file.path(targetPath,"Input",paste(File))) %>%
      return(result)
   })
}

local_mock将应用于的两个函数的示例:

CalcProfitability <- function(IncomeStatement,BalanceSheet,Months){
  result = (12/Months) * (IncomeStatement / BalanceSheet)
  return(result)
}
CalcDiffDivByPl <- function(BalanceSheetCY,BalanceSheetPY,IncomeStatement){
  result = (BalanceSheetCY - BalanceSheetPY) / IncomeStatement
  return(result)
}

所以模拟测试代码如下:

.apply_local_mock(CalcProfitability,"CalcProfitability.csv")
.apply_local_mock(CalcDiffDivByPl,"CalcDiffDivByPl.csv")

但是我收到以下错误

Error: Function FunctionName not found in environment testthat. 

任何人都可以建议如何在新函数包括local_mock()函数吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...