किसी को चमेली/हंसी es2015 सिंटैक्स का उपयोग परीक्षण लेखन किया गया है? कितना shimming/polyfill/gerrymandering की आवश्यकता है?कोलाहल-हंसी ES2015 आयात बयान
मैं आयात करने में समस्या आ रही है कार्यों को सही ढंग से। । .../utils/TweetUtils.js
'use strict';
export function getListOfTweetIds (tweets) {
return Object.keys(tweets);
};
और एक टेस्ट स्वीट: मैं एक मॉड्यूल है
... ./__ परीक्षण __/TweetUtils-test.js
'use strict';
jest.dontMock('../TweetUtils');
import * as TweetUtils from '../TweetUtils';
describe('Tweet utilities module',() => {
it('has access to the TweetUtils methods',() => {
let testObj = {a:'a',b:'b',c:'c'};
// Passes
expect(TweetUtils.getListOfTweetIds).toBeDefined();
// Passes
expect(typeof TweetUtils.getListOfTweetIds).toBe('function');
// Fails
expect(TweetUtils.getListOfTweetIds(testObj)).toBeTruthy();
});
});
मैं कुछ इस तरह के साथ सुइट में एक सांत्वना उत्पादन हैक हैं: expect(‘’).toBe(TweetUtils);
जैस्मीन इस रिपोर्ट:
- Expected: '' toBe: {
default: {
getListOfTweetIds: Function
},
getListOfTweetIds: Function
}
तो ऐसा लगता है इंपोर्ट स्टेटमेंट की तरह कुछ कर रही है, लेकिन यह स्पष्ट रूप से ईमानदारी से मेरी तरीकों का आयात नहीं कर रहा है। मैं जब मैं नामित समारोह सिंटैक्स का उपयोग आयात एक ही परिणाम प्राप्त: import {getListOfTweetIds} from ‘../TweetUtils’;
लेकिन अगर मैं डिफ़ॉल्ट सिंटैक्स का उपयोग करें: import getListOfTweetIds from ‘../TweetUtils’;
दूसरा कल्पना में विफल रहता है - यह अब typeof function
नहीं है, लेकिन typeof object // => {default: Function}
मैं डॉक्स में कंघी कर रहे हैं और खुले मामले। कुछ महीनों के लिए संबंधित मुद्दे रहे हैं, लेकिन ज्ञात मुद्दे सही नहीं लगते हैं। मैंने hoisting से बचने के लिए अपने jest.dontMock कथन आयात करने का प्रयास किया है, लगभग: https://github.com/babel/babel-jest/issues/16 लेकिन कोई पासा नहीं।
सब कुछ काम करता है अगर मैं TweetUtils.jsmodule.exports = function…
उपयोग करें और यह सूट const myFunction = require(‘../TweetUtils’)
का उपयोग कर में लाने के लिए संशोधित, लेकिन जैसे मैं सच ES2015 जादू channeling हूँ यह महसूस नहीं करता है। क्या पारिस्थितिक तंत्र नए वाक्यविन्यास तक पहुंचने पर हर कोई सिर्फ भद्दा कार्य-आसपास से निपट रहा है?
मेरे मामले में यह केवल काम किया जब मैं .DEFAULT जोड़ा में: बदलें
द्वारा
यह इससे पहले कि मैं यह तय हंसी उदाहरण में ही था 'स्थिरांक TweetUtils = की आवश्यकता होती है ('../ TweetUtils') डिफ़ॉल्ट;। ' – vitalets