Функция в renderComponents
должна принимать selectedService
в качестве параметра:
const renderComponents = (selectedService) => {
switch (selectedService) {
// ...
}
};
Если не полагаться на замыкание, функция становится чистой и ее намного проще для модульного тестирования:
it('renders a SoftLayerCancellationRequests when passed "otherservices" as parameter', () => {
const wrapper = shallow(renderComponents('otherservices'));
expect(wrapper.find(SoftLayerCancellationRequests)).toHaveLength(1);
})
Тем не менее, я вижу небольшую ценность в таких тестах.Это происходит потому, что функция в основном действует как простая карта:
const serviceToComponent : {
otherservices: SoftLayerCancellationRequests,
dedicatedhosts: GetDedicatedHostsCancellations,
virtualguestsservers: SoftLayerGetVirtualGuests,
baremetalservers: GetBareMetalServersCancellations
}
, что кажется немного скучным для тестирования.
Более значимым тестом будет проверка поведения компонента, который используеттакое отображение.