作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 RN 应用程序中,我正在导入以下模块:
const dismissKeyboard = require('dismissKeyboard'); /
import dismissKeyboard from 'dismissKeyboard';
运行测试时出现以下错误:
Error: Cannot find module 'dismissKeyboard'
at Function.Module._resolveFilename (module.js:339:15)
at Function.Module._load (module.js:290:25)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (InputAccessory.js:12:25)
at Module._compile (module.js:413:34)
at loader (/Users/user/dev/app/node_modules/babel-register/lib/node.js:126:5)
我试过 sinon:
before(() => {
sinon.stub('dismissKeyboard', () => {});
});
还有 mockey:
mockery.enable();
mockery.mock('dismissKeyboard', () => null) /
mockery.registerMock('dismissKeyboard', () => null)
但我仍然得到同样的错误。
有什么建议吗? dismissKeyboard 模块随 RN 一起提供,但不知何故需要单独使用。我正在使用 Mocha 。
更新
我发现dismissKeyboard来自
react-native/Libraries/Utilities/dismissKeyboard.js
虽然在尝试模拟它时即使使用这个完整路径也没有任何区别,但现在我收到关于这个 js 文件中的模块的警告。
最佳答案
如果你使用 require
这可以很容易地被 mock-require 模拟.不过似乎不适用于 es6 导入。
var mock = require('mock-require');
mock('dismissKeyboard', function () {
return 'I\'m a mocked function';
});
var dismissKeyboard = require('dismissKeyboard');
console.log(dismissKeyboard());
如果你想在你所有的测试中模拟这个,将它添加到你的设置文件中(或者如果你还没有创建一个)并在运行你的测试时使用它,就像这样:
mocha --require setup.js tests
关于testing - RN mock dismissKeyboard 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36864308/
我有一个自定义的 UIInputViewController,我们称它为 MyInputViewController。我将文本字段的输入 View 设置为我的输入 Controller 的单例实例的
在我的 RN 应用程序中,我正在导入以下模块: const dismissKeyboard = require('dismissKeyboard'); / import dismissKeyboard
我是一名优秀的程序员,十分优秀!