2015-11-26 18 views
6

Ben yeni bir jest için ve react.js app test etmek istiyorum. Bir kitap takip ediyorum, jest parçası için React.js Essentials. İşte jest için babel-jest kullanmak ama yine de sözdizimi hatası olsun

İşte
jest.dontMock('../Button.react'); 

describe('Button component', function() { 
    it('calls handler function on click', function() { 
    var React = require('react'); 
    var TestUtils = require('react-addons-test-utils'); 
    var Button = require('../Button.react'); 
    var handleClick = jest.genMockFunction(); 

    var button = TestUtils.renderIntoDocument(
     <Button handleClick={handleClick}/> 
    ); 

    var buttonInstance = 
     TestUtils.findRenderedDOMComponentWithTag(button, 'button'); 

    TestUtils.Simulate.click(buttonInstance); 
    expect(handleClick).toBeCalled(); 
    var numberOfCallsMadeIntoMockFunction = 
     handleClick.mock.calls.length; 
    expect(numberOfCallsMadeIntoMockFunction).toBe(1); 
    }); 
}); 

benim package.json

{ 
    "name": "snapterest", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "test": "jest" 
    }, 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
    "babel-jest": "^6.0.1", 
    "babelify": "^6.2.0", 
    "browserify": "^12.0.1", 
    "gulp": "^3.9.0", 
    "jest-cli": "^0.8.0", 
    "vinyl-source-stream": "^1.1.0" 
    }, 
    "dependencies": { 
    "react": "^0.14.0-beta3", 
    "react-dom": "^0.14.0-beta3", 
    "snapkite-stream-client": "^1.0.3" 
    }, 
    "jest": { 
    "scriptPreprocessor": "<rootDir>/node_modules/babel-jest", 
    "testFileExtensions": ["es6", "js"], 
    "unmockedModulePathPatterns": [ 
     "<rootDir>/node_modules/react" 
    ] 
    } 
} 

Ben npm testini çalıştırdığınızda sorun, aşağıdaki sözdizimini raporları olduğunu benim test kodu, Düğme-test.js olduğunu hata. Babel-jest yüklü olduğunu düşünüyorum ve neden sözdizimi hatası hala orada hiçbir fikrim yok. Babel-jest'i kurmak dışında yapmam gereken başka bir şey var mı?

source/components/__tests__/Header-test.js 
● Runtime Error 
SyntaxError:   
/snapterest/source/components/__tests__/Header-test.js: Unexpected token (11:6) 
    9 |  
    10 |  var button = TestUtils.renderIntoDocument(
> 11 |  <Button handleClick={handleClick}/> 
    |  ^
    12 | ); 

cevap

3

Eğer babelify v7 kullanıyorsunuz? eğer öyleyse, gulp dosyasında tepki önayarını ekleyen belirtilen here düzeltmesini takip etmiş olabilirsiniz. Aynı şey testiyle olması gereken, fakat bu ayrı çalıştırılır beri projeniz kökünden bir .babelrc dosyasına bu ekleyebilirsiniz:

{ 
    "presets": ["react"] 
} 

npm testi sonra düzgün çalışmalıdır.

+1

Bu benim için problemi çözdü. Sadece "babel" ekledim: {"presets": ["react"]} '' package.json' adlı dosyama. – chipit24

İlgili konular