我有一些访问数据库的函数,我需要对其进行模拟以进行测试。
为了便于使用,我想在另一个函数中定义这些函数,在那里我可以利用范围来减少我必须传递的参数数量。
我需要测试父函数,同时模拟嵌套函数。
有什么技巧可以模拟嵌套的函数吗?
作为第二个问题,当嵌套在任意深度时,有没有办法模拟函数?
附带说明:我的项目足够轻,我什至没有使用经典的模拟,只是像这篇博文所建议的那样可堆叠的特征;但是对于这个问题,任何形式的嘲讽都可以。
这是一些非常简单的示例代码:
class Storage {
def storeData(specId: Long, data: String): Unit = {
val rawPath = "/path/to/file"
def storeFsEntry: Unit = {
// do stuff
}
def storeDbEntry: Unit = {
// do stuff we need mocked
}
if ( specId == 1 )
{
storeDbEntry
storeFsEntry
}
}
}