我想通过扩展默认mock的行为并在执行以下测试时将其恢复为原始实现来更改每个测试基础上的模拟依赖项的实现.
更简单地说,这就是我想要实现的目标:
我正在使用Jest v21.
以下是典型的Jest测试:
__mocks__/myModule.js
const myMockedModule = jest.genMockFromModule('../myModule');
myMockedModule.a = jest.fn(() => true);
myMockedModule.b = jest.fn(() => true);
export default myMockedModule;
Run Code Online (Sandbox Code Playgroud)
__tests__/myTest.js
import myMockedModule from '../myModule';
// Mock myModule
jest.mock('../myModule');
beforeEach(() => {
jest.clearAllMocks();
});
describe('MyTest', () => {
it('should test with default mock', () => {
myMockedModule.a(); // === true
myMockedModule.b(); // === true
});
it('should override …Run Code Online (Sandbox Code Playgroud) 我正在使用MacO Sierra 10.12.4并且我安装了纱线brew install yarn,它的版本是yarn version v0.23.2
我安装angular-cli,bower并且ionic使用yarn global add <package-name>
然后我yarn global ls用来显示全局安装的包,我希望看到上面安装的包,但纱线给我这个:
$ yarn global ls
yarn global v0.23.2
warning No license field
? Done in 0.99s.
Run Code Online (Sandbox Code Playgroud)
然后我检查yarn global bin并获取路径/Users/myusername/.config/yarn/bin,然后转到目录并查看软链接:
lrwxr-xr-x 1 myusername staff 38B 19 Apr 10:17 bower -> ../global/node_modules/bower/bin/bower
lrwxr-xr-x 1 myusername staff 42B 19 Apr 10:21 cordova -> ../global/node_modules/cordova/bin/cordova
lrwxr-xr-x 1 myusername staff 38B 19 Apr 10:20 ionic -> …Run Code Online (Sandbox Code Playgroud) 我有一个带有border-radius和背景图像的div,这在所有浏览器中都很好地显示,除了在Internet Explorer 11中,背景图像显得模糊.
我怎么能解决这个问题?
<span class="button boxsizing soundicon"></span>
Run Code Online (Sandbox Code Playgroud)
CSS:
.roomscene .top .roominfo .center span.button {
height: 29px;
width: 29px;
background-color: #23221d;
border-radius: 7px;
border: 2px solid #494742;
margin-top: -10px;
display: inline-block;
float: right;
}
.roomscene .top .roominfo .center span.button:hover {
background-color: #2f2d27;
cursor: pointer;
}
.roomscene .top .roominfo .center .soundicon {
background: #23221d url('../images/rooms/roominfo/soundicon.png') no-repeat center center;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我注意到如果我从.soundicon(或span.button的边界半径)移除背景的"中心"位置,模糊消失,但我无论如何需要正确定位我的背景......
EDIT2:
真的很奇怪IE11的错误,似乎如果我指定位置在px而不是中心或50%,背景图像没有模糊/凌乱.
Internet Explorer仍然是一个糟糕的浏览器.
EDIT3:
没有,对于px位置,在某些图像上已经模糊,但是比使用中心/%时更少.
实际示例:
试图用纱线安装一个包,但是我得到并且错误地说我需要nodejs,但安装nodejs会删除yarn.同样,当我安装yarn时,会删除nodejs.我错过了什么?
$ yarn install some-package
Yarn requires Node.js 4.0 or higher to be installed.
$ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
...
...
$ sudo apt-get install -y nodejs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
gyp libc-ares-dev libjs-node-uuid libv8-3.14-dev
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
yarn
The following NEW packages will be installed:
nodejs
...
$ …Run Code Online (Sandbox Code Playgroud) 我正在尝试将项目从NPM迁移到Yarn.
我的节点依赖项的一部分是在我正在工作的公司的命名空间下托管在Bitbucket上的私有软件包(未在NPM注册表上发布).
使用NPM,我能够在我的语句中声明具有不同语法的那种依赖关系package.json.像这样:
// package.json
"dependencies": {
...
@myCompany/package-name": "bitbucket:bitbucket-username/repo-name.git",
...
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行时yarn install出现以下错误:
ssh: Could not resolve hostname bitbucket: nodename nor servname provided, or not known
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)
我正在运行yarn v0.23.3MAC OSX.
是否有任何进一步的语法或解决方法让yarn从bitbucket安装私有存储库?
我已经抓住了Yarn的github问题,但我无法找到任何暗示来决定是继续尝试还是放弃.
预先感谢!
我试图找出postcss-loader有什么用。
在github页面上
https://github.com/postcss/postcss-loader
它说:
用于webpack的Loader以使用PostCSS处理CSS
我不明白:所以,PostCSS是一个用PostCSS处理CSS的WP-Loader吗?
恕我直言,这是一个循环定义。
那么什么是PostCSS,它是CSSLoader吗?或者,由于它被称为Post CSS,它是要在其他CSS加载程序之后运行的加载程序吗?
作为JS 库作者,我以以下格式编译和发布我的源代码:
/lib/index.js)/es/index.js)/dist/index.js)我的单元测试涵盖了我的源代码,我相信我的捆绑/编译工具可以生成工作包。
然后我读到了React 团队这篇富有启发性的文章,他们解释说他们针对该库的捆绑版本运行了部分单元测试。
他们引入了一个使用特殊配置文件运行 Jest 的test-build-prod程序,该配置文件替换了测试中的原始导入声明,以使用 Jest 的选项指向捆绑文件。moduleNameMapper
这很酷,但在我的小型开源项目中复制有点难以承受。
在尝试之前,我是否应该考虑使用任何其他工具或更便携的解决方案来针对编译的包运行我在源代码上运行的相同测试?
yarn install v0.21.3
[1/4] Resolving packages...
warning There appears to be trouble with your network connection. Retrying...
warning There appears to be trouble with your network connection. Retrying...
warning There appears to be trouble with your network connection. Retrying...
warning There appears to be trouble with your network connection. Retrying...
warning There appears to be trouble with your network connection. Retrying...
error An unexpected error occurred: "https://github.com/igorklopov/node-resolve.git: tunneling socket could not be established, cause=write EPROTO 140399640340352:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:794:\n".
Run Code Online (Sandbox Code Playgroud)
首先我认为这可能是代理问题所以我添加了我的公司代理设置:
yarn …Run Code Online (Sandbox Code Playgroud) 最新的Rails版本5.1.0.rc1默认包含bin / yarn。这使您可以直接安装npm模块。目前从application.js导入javascript文件似乎工作正常,但我无法从已安装的模块导入css文件。
我尝试过的方法是使用波浪号运算符让SASS知道它应该是一个模块:
@import "~owlcarousel-pre/owl-carousel/owl.carousel";
Run Code Online (Sandbox Code Playgroud)
关于如何使它工作的任何想法?
我试图弄清楚如何从编译过程中提取一些信息。babel
更具体地说,当我运行时babel(无论是否使用Webpack的babel-loader,测试框架的转换器,Babel的CLI等),我都需要为每个编译文件提取一些信息。喜欢:
工作正常,但仅提供Webpack的加载程序运行时间。没有有关单个编译文件的信息。
我考虑过编写一个Webpack插件以按此处所述插入编译过程,但是我找不到合适的钩子来识别正在处理的文件babel。
我猜@kidroca指出了正确的方向。更具体地说,我了解Babel的wrapPluginVisitorMethod选择是进入Babel编译过程的关键。
见babel-minify的定时插件。
相关主题:
我最终尝试将解决方案包装到称为babel-timing的工具中。