Ich bin fest mit dem Schreiben von Unit-Tests für meinen Code testen, die uAwg Versprechen verwendet. Ich versuchte pit
Tests zu verwenden, hatte aber kein Glück bei der Herstellung von Tests für uAwg passieren, aber eingebettet Versprechen gut funktionieren:kann nicht uAwg Versprechen im Scherz
//jest.autoMockOff(); - even with this rsvp test is failing
jest.unmock('rsvp');
import rsvp from 'rsvp';
describe('my rsvp tests',() => {
// this test fails
pit('testing rsvp promise',() => {
return new rsvp.Promise((resolve) => {
resolve("getting something");
}).then(()=> { expect(1).toBe(1); });
});
// this test passes
pit('testing pure promise',() => {
return new Promise((resolve) => {
resolve("getting something");
}).then(()=> { expect(1).toBe(1); });
});
});
Relevante Details von meinem package.json:
"rsvp": "^3.2.1",
"babelify": "^7.2.0",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"babel-preset-stage-0": "^6.5.0",
"babel-jest": "^9.0.0",
"jest-cli": "*"
...
"scripts": {
"test": "jest"
},
"jest": {
"unmockedModulePathPatterns": [
"<rootDir>/node_modules/react",
"<rootDir>/node_modules/react-dom",
"<rootDir>/node_modules/react-addons-test-utils"
]
}
.babelrc:
{
"presets": ["es2015", "react", "stage-0"]
}
ich sehe zwei mögliche Abhilfen, aber ich mag keine von ihnen:
- Mock uAwg Versprechen von eingebetteten Versprechen verwenden. Nachteil: Komponententests werden ausführlicher, ich muss andere Funktionen wie rsvp.all vortäuschen, die ich nicht machen möchte.
- Migrate von RSVP eingebettet verspricht. Es ist möglich, aber ich benutze bereits eine Bibliothek, die abhängig von rsvp, die Ajax-Anfragen macht. Ich bin mir auch nicht sicher, ob eingebettete Versprechen alles ersetzen können, was rsvp bietet (wie etwa "alle" und die anderen Hilfsfunktionen).
Vielleicht sollten Sie einen Bug-Datei? – Laurent