convenzioni di denominazione per schernisce manuali a prova Jest corridore

voti
3

Questa è la mia struttura di cartelle di progetto,

Struttura delle cartelle

app
  - api
    - api1
      __mocks__
          index.js
      - index.js
    - api2
      __mocks__
          index.js
      - index.js
  - components
    -component1
       - index.js
       __tests__
           component1.test.js

In questo momento ho component1che usa internamente api1per fare alcune richieste. Ci sono due problemi che sto affrontando con la struttura della cartella corrente e beffardo moduli api.

  1. Come dovrei nominare il file sotto api/__mocks__? dovrebbe essere index.js(lo stesso di come index.jssotto api1) o dovrebbe essere api1.mocks.js? C'è una convenzione di denominazione che è necessario per scherzo?
  2. In questo momento l'attuale struttura scherzo mi sta gettando il seguente errore,

Errore Jest:

jest-fretta-map: duplicare manuale finto trovato: Nome Modulo: Indice

C'è una documentazione da qualche parte che parla di denominazione prende in giro?

Questa è la mia configurazione scherzo da package.json,

package.json:

jest: {
    testEnvironment: jsdom,
    testPathDirs: [
      <app-path>
    ],
    modulePaths: [
      <app-path>
    ],
    enableAutomock: true,
    moduleNameMapper: {
      ^components: <rootDir>/components,
      ^services: <rootDir>/services,
      ^api: <rootDir>/api,
      ^.+\\.less$: <rootDir>/__mocks__/styleMocks.js
    }
  }

unit test semplice:

import React from 'react';
import {mount} from 'enzyme';
import Component from 'components/Component1';

jest.mock('api/api1');

describe('Component1 Unit tests', () => {
  it('Should render', () => {
    const c1 = mount(
      <Component1 />
     );
     expect(...);
  });
});
È pubblicato 03/11/2016 alle 04:45
fonte dall'utente
In altre lingue...                            


1 risposte

voti
0

'C'è una documentazione da qualche parte che parla di schernisce denominazione?'

Sì, la documentazione specifica che nel manuale prende in giro sezione:

Mock manuali sono definiti scrivendo un modulo in una __mocks__/sottodirectory immediatamente adiacente al modulo. Ad esempio, per prendere in giro un modulo chiamato usernella modelsdirectory, creare un file chiamato user.jse metterlo nella models/__mocks__directory.

Questo è il nome del finto dovrebbe essere lo stesso del modulo .


'Duplica finto manuale trovato'

Quando si utilizzano moduleNameMapperi documenti leggono :

Moduli che sono mappati a un alias sono unmocked predefinita.

Non sono sicuro che sia Jest non cerca il mock in entrambi i casi.

Inoltre si prega di non che moduleNameMappernon funziona come ti sembra di assumere lo fa. Non sostituisce le parti del percorso, si risolve ogni requirepartendo ad esempio apida <rootDir>/api! (Questo l'non ha alcun file di root.). Si dovrebbe usare ModulePaths instad.

L'ultima Jest V17 dovrebbe dare maggiori informazioni riguardo il duplicato.


Nota : L'opzione di configurazione enableAutomock non esiste , volevi dire automock? (O non dovrebbe essere lì a tutti?)

Nota : Simile alla convenzione di denominazione per la prende in giro, all'interno di __tests__file di test delle cartelle di solito mantenere il nome del modulo, anche. L'altro approccio è quello di aggiungere .speco .testsuffisso e mantenere il file di prova nella stessa cartella. In entrambi i casi è il facile da trovare il file di prova corrispondente. Quindi __tests__/index.jso index.test.jssarebbe nomi buoni.

Risposto il 08/11/2016 a 16:31
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more