javascript - 重构一个返回并执行副作用的函数
问题描述
我的测试中有一个辅助函数,如下所示:
function setupForTestingAPI(mockedManager) {
const info = infoBuilder.createInfoObject();
mockedManager.someFunc.returns(info); // side-effect of this function
return info.userId; // return value
}
// Then I use it in tests like
function TestXXX() {
let mockDbManager = getMockedManager();
const userId = setupForTestingAPI();
const service = new Service(mockDbManager);
// do some assertions by calling a method
}
function TestYYY() {
mockDbManager = getMockedManager();
const userId = setupForTestingAPI();
const service = new Service(mockDbManager);
// do some assertions with a different method call
}
所以,我需要在我的测试中使用 userId 来执行方法调用。我很困惑是否适合setupForTestingAPI
设置一些模拟并同时返回一些东西。但是,我不确定我应该如何重构我的代码。
一种方法是调用infoBuilder.createInfoObject()
测试本身并将信息传递给setupForTestingAPI
. 但是,这将导致测试功能重复。
有人可以帮我吗?
谢谢
解决方案
推荐阅读
- nlp - 如何测量单词共现频率
- python - 计算字符串中第 n 个单词的索引
- sql-server - 查询以返回所有数据库的数据库、模式、表、列
- c# - 使用 CheckBoxList 进行测验
- ruby-on-rails - Rails gemacts_as_list,将位置范围限定给用户
- django - csrftoken cookie 未通过安全测试 - 缺少标志
- python - 根据电子邮件的匹配值更新 Pandas 数据框,但替换用户 ID
- python-3.x - 在python中插入带格式的大括号
- email - 电子邮件中要包含哪种字体格式?
- docker - 我必须通过每个次要版本更新 gitlab 吗?