Lorsque je crée un paquet npm, il arrive qu'il soit nécessaire de rétablir une ancienne version du paquet de dépendances.
Si la nouvelle version a une nouvelle interface utilisateur, je peux écrire le code selon ce modèle :
import pkg from 'some-pkg';
const isNewVersion = pkg.newVersionApi !== 'undefined';
if (isNewversion) {
pkg.newVersionApi();
} else {
pkg.oldVersionApi(); // backward compatible api
}
Et avec ce modèle, lorsque je veux écrire le test, je ne peux tester que l'élément installed version
code. Le code de l'autre version ne peut pas être testé.
Par exemple, dans React v15 et v16, React v16 a une nouvelle API Portail . Avant la sortie du portail, la v15 a unstable_renderSubtreeIntoContainer
pour réaliser une fonction similaire.
Le code pour React serait donc le suivant :
import ReactDOM from 'react-dom';
const isV16 = ReactDOM.createPortal !== 'undefined';
if (isV16) {
ReactDOM.createPortal(...);
} else {
ReactDOM.unstable_renderSubtreeIntoContainer(...);
}
Je voudrais donc savoir s'il existe une méthode pour tester avec different dependency version
?
Actuellement, une méthode à laquelle je pense est d'installer à nouveau l'autre version et de la tester. Mais cela ne peut se faire qu'en local. Elle ne peut pas fonctionner sur ci et ne peut pas compter dans la couverture ensemble.
Je pense que ce n'est pas seulement pour le test de réactivité. Il se peut que ce soit le cas pour les tests node.js. Toute suggestion peut être discutée.
Mise à jour
Cette question est peut-être liée à l'installation two versions dependency
dans npm. Mais je sais que l'installation d'une dépendance entre deux versions n'est pas possible.