小编Ric*_* II的帖子

109
推荐指数
3
解决办法
5万
查看次数

使用Jest和React并导入CSS文件的SyntaxError

我想让我的第一个Jest Test通过React和Babel.

我收到以下错误:

SyntaxError:/Users/manueldupont/test/avid-sibelius-publishing-viewer/src/components/TransportButton/TransportButton.less:意外的令牌

    >  7 | @import '../variables.css';
          | ^
Run Code Online (Sandbox Code Playgroud)

我的package.json配置为jest看起来像这样:

"babel": {
    "presets": [
      "es2015",
      "react"
    ],
    "plugins": [
      "syntax-class-properties",
      "transform-class-properties"
    ]
  },
  "jest": {
    "moduleNameMapper": {
      "^image![a-zA-Z0-9$_-]+$": "GlobalImageStub",
      "^[./a-zA-Z0-9$_-]+\\.png$": "RelativeImageStub"
    },
    "testPathIgnorePatterns": [
      "/node_modules/"
    ],
    "collectCoverage": true,
    "verbose": true,
    "modulePathIgnorePatterns": [
      "rpmbuild"
    ],
    "unmockedModulePathPatterns": [
      "<rootDir>/node_modules/react/",
      "<rootDir>/node_modules/react-dom/",
      "<rootDir>/node_modules/react-addons-test-utils/",
      "<rootDir>/node_modules/fbjs",
      "<rootDir>/node_modules/core-js"
    ]
  },
Run Code Online (Sandbox Code Playgroud)

那我错过了什么?

babel reactjs jestjs

36
推荐指数
6
解决办法
1万
查看次数

Jest:忽略代码覆盖的行

在Jest中,有没有办法忽略测试覆盖的代码?我试过用

/* istanbul ignore next */
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.

code-coverage istanbul jestjs

28
推荐指数
4
解决办法
1万
查看次数

无法使用jest模拟模块,并测试函数调用

我使用create-app-component创建了一个项目,它使用构建脚本(babel,webpack,jest)配置新的应用程序.

我写了一个我正在尝试测试的React组件.该组件需要另一个javascript文件,公开一个函数.

我的search.js文件

export {
  search,
}

function search(){
  // does things
  return Promise.resolve('foo')
}
Run Code Online (Sandbox Code Playgroud)

我的反应成分:

import React from 'react'
import { search } from './search.js'
import SearchResults from './SearchResults'

export default SearchContainer {
  constructor(){
    this.state = {
      query: "hello world"
    }
  }

  componentDidMount(){
    search(this.state.query)
      .then(result => { this.setState({ result, })})
  }

  render() {
    return <SearchResults 
            result={this.state.result}
            />
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的单元测试中,我想检查是否search使用正确的参数调用了该方法.

我的测试看起来像这样:

import React from 'react';
import { shallow } from 'enzyme';
import should from 'should/as-function'; …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing mocking reactjs jestjs

27
推荐指数
1
解决办法
3万
查看次数

减少第一个孩子

为什么我的第一个孩子选择器不在Less中工作?

.leftPanel{
    margin:20px;
    float:left;
    display:inline;
    width:620px;
    margin-left:10px;
    select{
        width:300px;    
        &:first-child{
            margin-right: 30px;             
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

css less

14
推荐指数
1
解决办法
4万
查看次数

使用webpack的Jest提供插件

我正在使用webpack-provide-plugin导入反应.

new webpack.ProvidePlugin({
        "React": "react",
}),
Run Code Online (Sandbox Code Playgroud)

// text.jsx

let text = (props) => (
  <div> 
    <p class="text">this.props.text</p>
  </div>
)

export default text 
Run Code Online (Sandbox Code Playgroud)

//text.test.js

import React from 'react';
import { shallow } from 'enzyme';
import text from 'text';

it('Renders text', () => {
    const wrapper = shallow(<text/>);
    expect(wrapper.hasClass("text")).toEqual(true);
});
Run Code Online (Sandbox Code Playgroud)

但是当用jest运行反应组件测试时,我得到了错误

ReferenceError: React is not defined
Run Code Online (Sandbox Code Playgroud)

当然,因为反应不是明确导入的.除了显式导入和放弃提供插件之外,有没有办法解决这个问题?

import reactjs webpack jestjs es6-modules

11
推荐指数
1
解决办法
2081
查看次数

Webstorm说Promise是一个未解决的类型

使用WebStorm 10.0

我目前正在学习Node Js并安装它需要工作的所有组件.所以我选择使用Jest来测试我的工作,我已经在WebStorm中安装了Jest到我的框架和语言,但它仍然将Promise显示为未解析的类型我如何在WebStorm中修复它?

未解决的类型

在此输入图像描述

webstorm jestjs

9
推荐指数
1
解决办法
3334
查看次数

jQuery自动完成"响应"事件

我正在使用jQuery UI自动完成,如[http://api.jqueryui.com/autocomplete/]所述

我需要在执行搜索之前和之后做一些事情.通过阅读上述URL中的文档,它描述了在查询运行之前和之后触发的两种方法"搜索"和"响应" - 完美.但是,如果我将这些添加到我的代码中,"搜索​​"可以完美地工作,但"响应"永远不会被调用.我究竟做错了什么?我的所有代码都有效,没有javascript错误,自动完成功能完美无缺.但我只是没有触发"响应"方法.

$(function() {
             $("#tv").autocomplete({
                source: "a_url_providing_json",
                minLength: 4,
                select: function(event, ui) {
                    $('#state_id').val(ui.item.id);
                    $('#abbrev').val(ui.item.abbrev);
                },
                search : function(a,b) {
                     alert('this works!');
                },
                response : function(a,b) {
                     alert('this doesnt!');
                } 
        })    
    }); 
Run Code Online (Sandbox Code Playgroud)

非常感谢任何建议!

jquery jquery-ui jquery-autocomplete

8
推荐指数
1
解决办法
1万
查看次数

为什么在1582之前将Java日期转换为使用Instant的LocalDate给出不同的日期?

考虑以下代码:

Date date = new SimpleDateFormat("MMddyyyy").parse("01011500");

LocalDate localDateRight = LocalDate.parse(formatter.format(date), dateFormatter);
LocalDate localDateWrong = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).toLocalDate();

System.out.println(date);           // Wed Jan 01 00:00:00 EST 1500
System.out.println(localDateRight); // 1500-01-01
System.out.println(localDateWrong); // 1500-01-10
Run Code Online (Sandbox Code Playgroud)

我知道1582年是Julian和Gregorian日历之间的截止点.我不知道为什么会发生这种情况,或者如何调整它.

这是我到目前为止所发现的:

  • 对象的BaseCalender设置为的日期JulianCalendar
  • date.toInstant() 回来 Instant.ofEpochMilli(getTime())
  • date.getTime() 返回-14830974000000
  • -14830974000000是Wed,10 Jan 1500 05:00:00 GMT Gregorian

所以似乎要么返回的毫秒getTime()是错误的(不太可能),要么与我预期的不同,我需要考虑差异.

java datetime date java-8 java-time

8
推荐指数
1
解决办法
1724
查看次数

使用jest测试react-native app时,未定义XMLHttpRequest

我正在尝试使用jest(集成测试)在基于反应本机的应用程序中测试apiwrapper.当我在iOs模拟器中运行时,一切运行正常,但它不会正确运行我的开玩笑测试 - 我总是得到:

ReferenceError: XMLHttpRequest is not defined
Run Code Online (Sandbox Code Playgroud)

当我尝试使用我的api包装器运行测试时,例如:

it('Login successful with correct data', () => {
  let api = Api.getInstance();
  return api.login("test", "testpass")
         .then(result => expect(result).toEqual('login_successful'));
});
Run Code Online (Sandbox Code Playgroud)

我试图在这里测试的api类确实使用了fetch api(不是vanilla xhr).我假设它的某些东西与试图嘲笑某些东西有关,但还没有找到让它工作的方法.

提前致谢.

xmlhttprequest jestjs react-native babel-jest

8
推荐指数
1
解决办法
2791
查看次数