我想在jest测试套件中模拟一个节点的内置函数require.resolve
。下面是Reply.it和代码本身的问题的工作示例:
测试对象(作为示例):
const requirer = () => {
try {
return require.resolve('./add')
} catch (error) {
console.error('failed to find a module')
}
}
module.exports = requirer
测试套件:
const requirer = require('./requirer')
describe('attempt to mock require.resolve', () => {
it('does not work', () => {
require.resolve = jest.fn(arg => `./${arg}`)
console.log(
'is require.resolve mocked',
jest.isMockFunction(require.resolve)) // will say true
requirer()
expect(require.resolve).toHaveBeenCalledTimes(1)
expect(require.resolve).toBeCalledWith('')
})
})
在测试套件声明中,一切正常(请参见jest.isMockFunction(require.resolve)
的输出),并且模拟工作。但是对于测试主题,require.resolve
仍然具有原始功能。
由于这个问题,这不是纯粹的单元测试。
例如,如果我mockprocess.exit
所有工作都按预期进行。
因此,并不是一个完美的解决方案,但将(DI)require.resolve注入到
const requirer = (resolver) => {
try {
return resolver('./add')
} catch (error) {
console.error('failed to find a module')
}
}
module.exports = requirer
现在,在一个测试套件中,传递require.resolve
的模拟版本可以正常工作
常量requirer=require('./requirer')
describe('attempt to mock require.resolve', () => {
it('works', () => {
require.resolve = jest.fn(arg => `./${arg}`)
console.log(
'is require.resolve mocked',
jest.isMockFunction(require.resolve)) // will say true
requirer(require.resolve)
expect(require.resolve).toHaveBeenCalledTimes(1)
// expect(require.resolve).toBeCalledWith('')
})
})
我有一个文件,其中包含以下几个helper函数,这些函数在不同的组件中使用。 下面是一个组件,它使用了文件中定义的函数。我正在为组件编写测试,我想模拟这里调用的外部函数。 我对jest/enzyze是新手,我不知道如何模拟外部函数buildoptions。我不知道如何模拟外部的buildOptions功能。有人能帮我做这个吗。下面是我的测试代码:
问题内容: React v15.1.0 Jest v12.1.1 Enzyme v2.3.0 我试图弄清楚如何测试通过单击调用的函数中调用promise的组件。我期望Jest的功能可以在这里为我提供帮助,但似乎并没有执行承诺。 零件: 和测试: 问题答案: 在结束测试之前,不需要太多等待等待的承诺。从您可以看到的代码中,有两种主要的实现方法。 独立测试和您的诺言方法。因此,请检查是否调用了正确的函
问题内容: 模拟按钮单击似乎是非常简单/标准的操作。但是,我无法在Jest.js测试中使用它。 这是我尝试过的(也可以使用jquery进行此操作),但似乎没有触发任何操作: 问题答案: #1使用笑话 这就是我使用笑话嘲笑回调函数来测试click事件的方式 我还使用了一个称为酶的模块 酶是一种测试实用程序,可让您更轻松地断言和选择您的React组件 #2使用Sinon 另外,您可以使用另一个称为si
已删除MyTestConfig.class,但问题仍然相同。即使我使用@SpringBootTest(classes={Application.Class,MyProblematicServiceImpl.Class}),它仍然在自动连线的地方返回模拟对象。MyProblematicServiceImpl是用@Service注释的空类。
在我的React项目中,我正在单元测试一个调用另一个异步函数的异步函数。 尽管每次测试时,结果都是一个空的promise{},而不是预期的数据。我在网上找到了很多模拟异步“getJobStatuses”函数结果的实现,但都没有成功(显示了我在这里使用的实现)。为了测试调用它的函数(getAllJobs),模拟该函数结果的正确方法是什么
我试图理解Jests的异步测试。 我的模块有一个函数,它接受一个布尔值并返回一个值的承诺。executer函数调用 ,在超时回调中,promise根据最初提供的布尔值进行解析或拒绝。代码如下所示: 我想用Jest来测试一下。我想我需要使用Jest提供的模拟计时器,所以我的测试脚本看起来有点像这样: 无论是否调用 ,我都会得到以下错误/失败测试 你能解释一下我哪里出错了吗?我该怎么做才能通过考试,保