Bunun mutlaka aradığınız yanıt olmadığını biliyorum, ancak bulduğum şey, çoğu zaman özel bir işlev test edilmeye değerse, kendi dosyasında bulunmaya değer.
Örneğin, herkese açık olanlarla aynı dosyada özel yöntemler kullanmak yerine, bunun gibi ...
src / şey / PublicInterface.js
function helper1 (x) {
return 2 * x;
}
function helper2 (x) {
return 3 * x;
}
export function publicMethod1(x) {
return helper1(x);
}
export function publicMethod2(x) {
return helper1(x) + helper2(x);
}
... bunu şu şekilde bölüyorsunuz:
src / şey / PublicInterface.js
import {helper1} from './internal/helper1.js';
import {helper2} from './internal/helper2.js';
export function publicMethod1(x) {
return helper1(x);
}
export function publicMethod2(x) {
return helper1(x) + helper2(x);
}
src / şey / iç / helper1.js
export function helper1 (x) {
return 2 * x;
}
src / şey / iç / helper2.js
export function helper2 (x) {
return 3 * x;
}
Bu şekilde, Rewire ve diğer "sihir" i kullanmadan kolayca helper1
ve helper2
olduğu gibi test edebilirsiniz (ki bunların hata ayıklama sırasında kendi acı noktalarına sahip olduğunu veya TypeScript'e doğru ilerlemeye çalıştığınızda, daha zayıf yeni meslektaşlar için anlaşılabilirlik). Ve bunların adı verilen bir alt klasörde internal
ya da buna benzer bir şey, istenmeyen yerlerde yanlışlıkla kullanılmalarını önlemeye yardımcı olacaktır.
Not: "Özel" yöntemleriyle Başka bir ortak sorun, testin istiyorsanız olmasıdır publicMethod1
ve publicMethod2
ve yardımcıları alay, yine, normalde bunu rewire gibi bir şey gerekiyor. Bununla birlikte, ayrı dosyalardaysa, bunu yapmak için Proxyquire'ı kullanabilirsiniz ; bu, Rewire'ın aksine, oluşturma sürecinizde herhangi bir değişiklik gerektirmez, okunması ve hata ayıklaması kolaydır ve TypeScript ile bile iyi çalışır.