Mam następujący kod w teście opartym na żartach:nazywając setstate na reactjs komponentu z utils testowych nie ponownego renderowania komponentu
it('will show the hero loop if there is one', function() {
var React = require('react/addons');
var ShowsDetailHeader = require('../../../../routes/shows/components/ShowsDetailHeader.jsx');
var mockData = require('../../../../mock/episodeDetailData');
mockData.data.show.assets._webHeroVideoUrl = 'https://test.video.com';
var Subject = require('../../../../mock/stubRouterContext')(ShowsDetailHeader, {
show: mockData.data.show
});
var TestUtils = React.addons.TestUtils;
var showsHeader = TestUtils.renderIntoDocument(
<Subject />
);
showsHeader.setState({
showVideo: true
});
var videoClass = TestUtils.findRenderedDOMComponentWithClass(showsHeader, 'flex-video').getDOMNode().getAttribute('class');
expect(videoClass.indexOf('in')).toBe(-1);
console.log(videoClass);
});
Moje poprzednie badania Badania stanu początkowego składnika. Teraz chcę wywołać setState, aby sprawdzić komponent po zmianie stanu. Kategoria VideoClass, w której się teraz loguję, pozostaje taka sama. Odpowiadam 0.12. i najnowsze jest 0.4.0.
Jakieś pomysły dotyczące testowania tego, co dzieje się po ustawieniu stanu?
Tak, stan jest prywatny, ale w tym szczególnym przypadku w pozostałej części komponentu odsłuchuję wystąpienie zdarzenia na elemencie wideo, a moduł obsługi zostanie wywołany, gdy wystąpi to zdarzenie. Mogę przynajmniej przypuszczać, że wywołanie tej metody zamiast setState bezpośrednio. Wspaniale, wciąż jestem nowy w żartach. przetestuj to, a następnie odbierz znak. –
runAllTicks nie pomogło sprawie. również, niezwiązane, nie mogę wywoływać metody, która zmienia stan, po prostu dalej otrzymuj obiekt Object nie ma metody [methodName]. –
Witam, próbuję przetestować ustawienie Stan z Jest i React Test Utils, proszę spojrzeć tutaj, jeśli masz chwilę? https://stackoverflow.com/questions/44399181/react-jest-how-to-test-changing- state-in-component-and-checking-for-another-co –