[{"data":1,"prerenderedAt":824},["ShallowReactive",2],{"collection-blogs--980259401":3,"_apollo:default":823},{"data":4,"meta":820},[5],{"id":6,"title":7,"excerpt":8,"slug":9,"createdAt":10,"updatedAt":11,"publishedAt":12,"backDate":13,"documentId":14,"imageUrl":15,"expertises":58,"author":18,"blocks":552,"seo":788},38,"In vier stappen end-to-end testen met Cypress","Om te beginnen: wat is end-to-end testen? We hebben twee zogeheten ‘ends’ in een webapplicatie: de Front-End en de Back-End. Met unit-testing testen we de code voor ofwel de Front-End ofwel de Back-End. We testen niet hoe de applicatie zich gedraagt in de browser of hoe beide ends samenwerken.","in-vier-stappen-end-to-end-testen-met-cypress","2023-10-13T10:26:29.936Z","2025-04-15T12:52:51.022Z","2023-10-13T10:26:29.777Z","2022-03-21","h2032vw00oqs3473s43escng",{"id":16,"name":17,"alternativeText":18,"caption":18,"width":19,"height":20,"formats":21,"hash":51,"ext":23,"mime":26,"size":52,"url":53,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":55,"updatedAt":55,"documentId":56,"publishedAt":57},287,"in-vier-stappen-end-to-end-testen-met-cypress.jpg",null,1280,500,{"large":22,"small":31,"medium":37,"thumbnail":44},{"ext":23,"url":24,"hash":25,"mime":26,"name":27,"path":18,"size":28,"width":29,"height":30},".jpg","https://incredible-beef-2a6059b946.media.strapiapp.com/large_in_vier_stappen_end_to_end_testen_met_cypress_0b63263a3e.jpg","large_in_vier_stappen_end_to_end_testen_met_cypress_0b63263a3e","image/jpg","large_in-vier-stappen-end-to-end-testen-met-cypress.jpg",177.78,1000,391,{"ext":23,"url":32,"hash":33,"mime":26,"name":34,"path":18,"size":35,"width":20,"height":36},"https://incredible-beef-2a6059b946.media.strapiapp.com/small_in_vier_stappen_end_to_end_testen_met_cypress_0b63263a3e.jpg","small_in_vier_stappen_end_to_end_testen_met_cypress_0b63263a3e","small_in-vier-stappen-end-to-end-testen-met-cypress.jpg",43.65,195,{"ext":23,"url":38,"hash":39,"mime":26,"name":40,"path":18,"size":41,"width":42,"height":43},"https://incredible-beef-2a6059b946.media.strapiapp.com/medium_in_vier_stappen_end_to_end_testen_met_cypress_0b63263a3e.jpg","medium_in_vier_stappen_end_to_end_testen_met_cypress_0b63263a3e","medium_in-vier-stappen-end-to-end-testen-met-cypress.jpg",100.09,750,293,{"ext":23,"url":45,"hash":46,"mime":26,"name":47,"path":18,"size":48,"width":49,"height":50},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_in_vier_stappen_end_to_end_testen_met_cypress_0b63263a3e.jpg","thumbnail_in_vier_stappen_end_to_end_testen_met_cypress_0b63263a3e","thumbnail_in-vier-stappen-end-to-end-testen-met-cypress.jpg",9.7,245,96,"in_vier_stappen_end_to_end_testen_met_cypress_0b63263a3e",298.81,"https://incredible-beef-2a6059b946.media.strapiapp.com/in_vier_stappen_end_to_end_testen_met_cypress_0b63263a3e.jpg","strapi-provider-upload-strapi-cloud","2023-10-13T10:22:21.106Z","h75xa4yzi3zp0siccf6gvr35","2026-01-05T12:38:34.018Z",[59,293],{"id":60,"title":61,"subTitle":62,"description":63,"shortDescription":64,"slug":65,"createdAt":66,"updatedAt":67,"publishedAt":68,"isCoreExpertise":69,"documentId":70,"image":71,"blocks":90,"midPageBlocks":162,"seo":18},2,"Front-End","Steeds complexer en steeds belangrijker","In een online wereld vol moderne webapplicaties is een goede Front-End onmisbaar. Het is nodig om aan de behoeften en verwachtingen van de gebruikers te voldoen. De interactie voor de gebruiker moet daarbij zo snel en optimaal mogelijk zijn. Met trots kunnen wij zeggen dat juist dáár de kracht van onze Front-End Developers zit.\n\nOnze ervaren Developers staan klaar om jouw team te versterken en te zorgen voor een optimale gebruikerservaring. Of je nu een tijdelijke aanvulling op je team nodig hebt of op zoek bent naar gespecialiseerde kennis voor een specifiek project, onze Front-End Developers zijn uitgerust om de uitdagingen van onze klanten aan te gaan en hun doelen te bereiken.","Onze Front-End developers zijn bedreven in diverse programmeertalen, frameworks en methodieken en daardoor breed inzetbaar.","front-end","2023-08-17T09:50:12.632Z","2024-12-13T12:15:57.609Z","2023-08-17T09:50:14.418Z",false,"l6bdicvjcb7ue03zpciuc888",{"id":72,"name":73,"alternativeText":18,"caption":18,"width":74,"height":75,"formats":76,"hash":85,"ext":78,"mime":81,"size":86,"url":87,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":88,"updatedAt":88,"documentId":89,"publishedAt":57},15,"frontend.png",282,130,{"thumbnail":77},{"ext":78,"url":79,"hash":80,"mime":81,"name":82,"path":18,"size":83,"width":49,"height":84},".png","https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_frontend_d8fa4dbfc1.png","thumbnail_frontend_d8fa4dbfc1","image/png","thumbnail_frontend.png",5.3,113,"frontend_d8fa4dbfc1",1.19,"https://incredible-beef-2a6059b946.media.strapiapp.com/frontend_d8fa4dbfc1.png","2023-08-17T09:47:56.273Z","gyo35xg1rnualaf1vog9edz8",[91,139],{"__component":92,"id":93,"title":94,"aside":95,"postType":96,"limit":97,"expertise":98},"strapi.related-kennisbank-list",161,"Lees meer over Front-End Development","Onze blogs","alle",3,[99],{"id":60,"title":61,"subTitle":62,"description":63,"shortDescription":64,"slug":65,"createdAt":66,"updatedAt":67,"publishedAt":68,"isCoreExpertise":69,"documentId":70,"image":100,"blocks":103,"midPageBlocks":114,"seo":18},{"id":72,"name":73,"alternativeText":18,"caption":18,"width":74,"height":75,"formats":101,"hash":85,"ext":78,"mime":81,"size":86,"url":87,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":88,"updatedAt":88,"documentId":89,"publishedAt":57},{"thumbnail":102},{"ext":78,"url":79,"hash":80,"mime":81,"name":82,"path":18,"size":83,"width":49,"height":84},[104,105],{"__component":92,"id":93,"title":94,"aside":95,"postType":96,"limit":97},{"__component":106,"id":107,"titleLeft":108,"callToActionTextLeft":109,"callToActionLinkUrlLeft":110,"titleRight":111,"callToActionTextRight":112,"callToActionLinkUrlRight":113},"call-to-action.double",210,"Heb je een Front-End Developer nodig?","Neem contact met ons op","/contact","Zoek je een nieuwe baan?","Bekijk onze vacatures","/word-onze-collega/vacatures",[115,121,125,129,133],{"__component":116,"id":117,"title":118,"subTitle":18,"content":119,"callToActionText":120,"callToActionLink":110,"colorStyle":18,"showAsides":18},"global.alternating-page-section",20,"Experts in verschillende frameworks","De huidige markt wordt al enige jaren gedomineerd door de drie grote Front-End frameworks: Angular, Vue en React. Voor elk framework hebben wij experts die altijd up-to-date blijven van de laatste ontwikkelingen. Hierdoor kunnen wij aan alle wensen voldoen. Het houdt de interactie binnen het team ook levendig; we sparren vaak en organiseren regelmatig LevelUp-sessies om elkaar op de hoogte te houden.","Neem contact op voor de mogelijkheden",{"__component":116,"id":122,"title":123,"subTitle":18,"content":124,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18},22,"Meer dan HTML, CSS en Javascript","Over het algemeen bestaat een Front-End framework uit HTML, CSS en Javascript, maar als Front-End competence in een multidisciplinaire agile omgeving doen we steeds meer. Of het nu gaat om de integratie van middleware zoals GraphQL of het inrichten van een pipeline voor productie- en staging-omgevingen. Wij weten wat we ermee moeten doen. Onze experts zijn zeer bekwaam en ervaren in de samenwerking met UX-designers. Door het gebruik van design patterns en design tokens zorgen ze voor een naadloze integratie van ontwerp naar ontwikkeling.",{"__component":116,"id":126,"title":127,"subTitle":18,"content":128,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18},21,"Kennis up-to-date","De Front-End Developers krijgen ruim de mogelijkheid om hun kennis up-to-date te houden door trainingen te volgen en evenementen te bezoeken. Maar wat is leerzamer dan de opgedane kennis in de praktijk brengen? Daarvoor hebben we binnen ShareValue een aantal interne projecten lopen zoals de herbouw van onze website met Nuxt met een Strapi CMS, en de ontwikkeling van een eigen CV-generator met Angular. De kennis die onze experts opdoen, delen zij regelmatig in blogs.",{"__component":116,"id":130,"title":131,"subTitle":18,"content":132,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18},23,"Full-Stack Development","Onze Developers zijn niet alleen experts in Front-End technieken, maar ook getraind in .NET en Azure. Dit verbreedt hun vaardigheden en maakt hen volwaardige Full-Stack Developers. Wat natuurlijk niet wegneemt dat wij trots zijn op onze specialistische kennis als Front-End Developers. ",{"__component":134,"id":135,"title":136,"callToActionText":137,"callToActionLinkUrl":138,"body":18},"call-to-action.single",100,"Wil je weten wat onze collega's allemaal kunnen?","Lees de klantcase over ons werk bij Rovict","/klantcases/rovict-vernieuwt-leerlingadministratie-en-leerlingvolgsysteem-esis",{"__component":106,"id":107,"titleLeft":108,"callToActionTextLeft":109,"callToActionLinkUrlLeft":110,"titleRight":111,"callToActionTextRight":112,"callToActionLinkUrlRight":113,"iconUrlLeft":140,"iconUrlRight":153},{"id":141,"name":142,"alternativeText":18,"caption":18,"width":143,"height":144,"formats":18,"hash":145,"ext":146,"mime":147,"size":148,"url":149,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":150,"updatedAt":151,"documentId":152,"publishedAt":57},6,"bulb.svg",71,70,"bulb_dd2e1d4efb",".svg","image/svg+xml",3.75,"https://incredible-beef-2a6059b946.media.strapiapp.com/bulb_dd2e1d4efb.svg","2023-08-17T08:31:37.036Z","2025-04-01T14:08:08.648Z","l2lglwkh4lf7ip36sjvs42rc",{"id":154,"name":155,"alternativeText":18,"caption":18,"width":144,"height":144,"formats":18,"hash":156,"ext":146,"mime":147,"size":157,"url":158,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":159,"updatedAt":160,"documentId":161,"publishedAt":57},8,"briefcase.svg","briefcase_679abae475",4.49,"https://incredible-beef-2a6059b946.media.strapiapp.com/briefcase_679abae475.svg","2023-08-17T08:31:37.038Z","2025-01-24T15:53:51.531Z","bfdftlvwhj35dm37dzv4aujf",[163,200,230,260,291],{"__component":116,"id":117,"title":118,"subTitle":18,"content":119,"callToActionText":120,"callToActionLink":110,"colorStyle":18,"showAsides":18,"imageUrl":164},{"id":165,"name":166,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":168,"hash":195,"ext":23,"mime":172,"size":196,"url":197,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":198,"updatedAt":198,"documentId":199,"publishedAt":57},775,"development.jpg",850,{"large":169,"small":176,"medium":182,"thumbnail":188},{"ext":23,"url":170,"hash":171,"mime":172,"name":173,"path":18,"size":174,"width":29,"height":175},"https://incredible-beef-2a6059b946.media.strapiapp.com/large_development_eb51c16b40.jpg","large_development_eb51c16b40","image/jpeg","large_development.jpg",129.5,664,{"ext":23,"url":177,"hash":178,"mime":172,"name":179,"path":18,"size":180,"width":20,"height":181},"https://incredible-beef-2a6059b946.media.strapiapp.com/small_development_eb51c16b40.jpg","small_development_eb51c16b40","small_development.jpg",47.86,332,{"ext":23,"url":183,"hash":184,"mime":172,"name":185,"path":18,"size":186,"width":42,"height":187},"https://incredible-beef-2a6059b946.media.strapiapp.com/medium_development_eb51c16b40.jpg","medium_development_eb51c16b40","medium_development.jpg",86.06,498,{"ext":23,"url":189,"hash":190,"mime":172,"name":191,"path":18,"size":192,"width":193,"height":194},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_development_eb51c16b40.jpg","thumbnail_development_eb51c16b40","thumbnail_development.jpg",14.65,235,156,"development_eb51c16b40",184.35,"https://incredible-beef-2a6059b946.media.strapiapp.com/development_eb51c16b40.jpg","2024-08-08T08:20:39.044Z","kpowm3xzp131qb3rneasct1x",{"__component":116,"id":122,"title":123,"subTitle":18,"content":124,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18,"imageUrl":201},{"id":202,"name":203,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":204,"hash":225,"ext":23,"mime":172,"size":226,"url":227,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":228,"updatedAt":228,"documentId":229,"publishedAt":57},776,"ux designer.jpg",{"large":205,"small":210,"medium":215,"thumbnail":220},{"ext":23,"url":206,"hash":207,"mime":172,"name":208,"path":18,"size":209,"width":29,"height":175},"https://incredible-beef-2a6059b946.media.strapiapp.com/large_ux_designer_4d22c4e684.jpg","large_ux_designer_4d22c4e684","large_ux designer.jpg",95.41,{"ext":23,"url":211,"hash":212,"mime":172,"name":213,"path":18,"size":214,"width":20,"height":181},"https://incredible-beef-2a6059b946.media.strapiapp.com/small_ux_designer_4d22c4e684.jpg","small_ux_designer_4d22c4e684","small_ux designer.jpg",30.12,{"ext":23,"url":216,"hash":217,"mime":172,"name":218,"path":18,"size":219,"width":42,"height":187},"https://incredible-beef-2a6059b946.media.strapiapp.com/medium_ux_designer_4d22c4e684.jpg","medium_ux_designer_4d22c4e684","medium_ux designer.jpg",59.67,{"ext":23,"url":221,"hash":222,"mime":172,"name":223,"path":18,"size":224,"width":193,"height":194},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_ux_designer_4d22c4e684.jpg","thumbnail_ux_designer_4d22c4e684","thumbnail_ux designer.jpg",8.79,"ux_designer_4d22c4e684",140.45,"https://incredible-beef-2a6059b946.media.strapiapp.com/ux_designer_4d22c4e684.jpg","2024-08-08T08:22:53.444Z","lzicd49svwe2coyrmyxkolub",{"__component":116,"id":126,"title":127,"subTitle":18,"content":128,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18,"imageUrl":231},{"id":232,"name":233,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":234,"hash":255,"ext":23,"mime":172,"size":256,"url":257,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":258,"updatedAt":258,"documentId":259,"publishedAt":57},777,"kennis opdoen.jpg",{"large":235,"small":240,"medium":245,"thumbnail":250},{"ext":23,"url":236,"hash":237,"mime":172,"name":238,"path":18,"size":239,"width":29,"height":175},"https://incredible-beef-2a6059b946.media.strapiapp.com/large_kennis_opdoen_7e45a846f8.jpg","large_kennis_opdoen_7e45a846f8","large_kennis opdoen.jpg",147.32,{"ext":23,"url":241,"hash":242,"mime":172,"name":243,"path":18,"size":244,"width":20,"height":181},"https://incredible-beef-2a6059b946.media.strapiapp.com/small_kennis_opdoen_7e45a846f8.jpg","small_kennis_opdoen_7e45a846f8","small_kennis opdoen.jpg",43.85,{"ext":23,"url":246,"hash":247,"mime":172,"name":248,"path":18,"size":249,"width":42,"height":187},"https://incredible-beef-2a6059b946.media.strapiapp.com/medium_kennis_opdoen_7e45a846f8.jpg","medium_kennis_opdoen_7e45a846f8","medium_kennis opdoen.jpg",90.65,{"ext":23,"url":251,"hash":252,"mime":172,"name":253,"path":18,"size":254,"width":193,"height":194},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_kennis_opdoen_7e45a846f8.jpg","thumbnail_kennis_opdoen_7e45a846f8","thumbnail_kennis opdoen.jpg",10.87,"kennis_opdoen_7e45a846f8",220.32,"https://incredible-beef-2a6059b946.media.strapiapp.com/kennis_opdoen_7e45a846f8.jpg","2024-08-08T08:25:10.656Z","q2bqhg65mnalhkgalkt2o2sq",{"__component":116,"id":130,"title":131,"subTitle":18,"content":132,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18,"imageUrl":261},{"id":262,"name":263,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":264,"hash":285,"ext":23,"mime":172,"size":286,"url":287,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":288,"updatedAt":289,"documentId":290,"publishedAt":57},778,"stack.jpg",{"large":265,"small":270,"medium":275,"thumbnail":280},{"ext":23,"url":266,"hash":267,"mime":172,"name":268,"path":18,"size":269,"width":29,"height":175},"https://incredible-beef-2a6059b946.media.strapiapp.com/large_stack_fec3a2bfae.jpg","large_stack_fec3a2bfae","large_stack.jpg",95.19,{"ext":23,"url":271,"hash":272,"mime":172,"name":273,"path":18,"size":274,"width":20,"height":181},"https://incredible-beef-2a6059b946.media.strapiapp.com/small_stack_fec3a2bfae.jpg","small_stack_fec3a2bfae","small_stack.jpg",29.21,{"ext":23,"url":276,"hash":277,"mime":172,"name":278,"path":18,"size":279,"width":42,"height":187},"https://incredible-beef-2a6059b946.media.strapiapp.com/medium_stack_fec3a2bfae.jpg","medium_stack_fec3a2bfae","medium_stack.jpg",58.57,{"ext":23,"url":281,"hash":282,"mime":172,"name":283,"path":18,"size":284,"width":193,"height":194},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_stack_fec3a2bfae.jpg","thumbnail_stack_fec3a2bfae","thumbnail_stack.jpg",8.24,"stack_fec3a2bfae",143.32,"https://incredible-beef-2a6059b946.media.strapiapp.com/stack_fec3a2bfae.jpg","2024-08-08T08:26:50.506Z","2024-12-09T10:18:46.269Z","kpz9iiz9dr551k3umhmtwy3k",{"__component":134,"id":135,"title":136,"callToActionText":137,"callToActionLinkUrl":138,"body":18,"imageUrl":292},{"id":141,"name":142,"alternativeText":18,"caption":18,"width":143,"height":144,"formats":18,"hash":145,"ext":146,"mime":147,"size":148,"url":149,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":150,"updatedAt":151,"documentId":152,"publishedAt":57},{"id":294,"title":295,"subTitle":296,"description":297,"shortDescription":298,"slug":299,"createdAt":300,"updatedAt":301,"publishedAt":302,"isCoreExpertise":303,"documentId":304,"image":305,"blocks":319,"midPageBlocks":457,"seo":547},10,"Development","Maatwerkoplossingen voor ieder vraagstuk","Ons Development-team biedt oplossingen die de verwachtingen van onze opdrachtgevers overtreffen. Wij zijn experts op het gebied van alle aspecten van Development, wat ons in staat stelt om veelzijdige en schaalbare oplossingen te creëren. Van gebruiksvriendelijke interfaces tot krachtige Back-End-architecturen: wij hebben de kennis en ervaring om jouw project tot een succes te maken.","Ons Development-team biedt oplossingen die de verwachtingen van onze opdrachtgevers overtreffen. Wij zijn experts op het gebied van alle aspecten van Development, wat ons in staat stelt om veelzijdige en schaalbare oplossingen te creëren. ","development","2024-12-13T12:15:40.484Z","2025-04-11T13:13:55.384Z","2024-12-13T12:15:42.976Z",true,"lpzfadokpxn5sdnx9czcdg47",{"id":306,"name":307,"alternativeText":18,"caption":18,"width":74,"height":75,"formats":308,"hash":314,"ext":78,"mime":81,"size":60,"url":315,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":316,"updatedAt":317,"documentId":318,"publishedAt":57},950,"Logo Development 2025 web.png",{"thumbnail":309},{"ext":78,"url":310,"hash":311,"mime":81,"name":312,"path":18,"size":313,"width":49,"height":84},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_Logo_Development_2025_web_d7711df072.png","thumbnail_Logo_Development_2025_web_d7711df072","thumbnail_Logo Development 2025 web.png",8.58,"Logo_Development_2025_web_d7711df072","https://incredible-beef-2a6059b946.media.strapiapp.com/Logo_Development_2025_web_d7711df072.png","2024-12-17T15:02:47.479Z","2024-12-19T08:35:22.054Z","okwfs117fps338v5fj5dnrpb",[320,436],{"__component":92,"id":321,"title":322,"aside":18,"postType":96,"limit":97,"expertise":323},179,"Lees meer over Development",[324,374,387],{"id":294,"title":295,"subTitle":296,"description":297,"shortDescription":298,"slug":299,"createdAt":300,"updatedAt":301,"publishedAt":302,"isCoreExpertise":303,"documentId":304,"image":325,"blocks":328,"midPageBlocks":333,"seo":357},{"id":306,"name":307,"alternativeText":18,"caption":18,"width":74,"height":75,"formats":326,"hash":314,"ext":78,"mime":81,"size":60,"url":315,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":316,"updatedAt":317,"documentId":318,"publishedAt":57},{"thumbnail":327},{"ext":78,"url":310,"hash":311,"mime":81,"name":312,"path":18,"size":313,"width":49,"height":84},[329,330],{"__component":92,"id":321,"title":322,"aside":18,"postType":96,"limit":97},{"__component":106,"id":331,"titleLeft":332,"callToActionTextLeft":109,"callToActionLinkUrlLeft":110,"titleRight":111,"callToActionTextRight":112,"callToActionLinkUrlRight":113},251,"Heb je een Developer nodig?",[334,339,344,348,353],{"__component":116,"id":335,"title":336,"subTitle":18,"content":337,"callToActionText":18,"callToActionLink":18,"colorStyle":338,"showAsides":69},47,"Optimale gebruikerservaring","Een goede Front-End is meer dan alleen een aantrekkelijke interface; het vormt de schakel tussen technologie en eindgebruiker. Onze Developers combineren hun kennis van frameworks zoals React, Angular en Vue met ervaring in geavanceerde technologieën zoals GraphQL en CI/CD pipelines. Dit stelt ons in staat om interactieve, intuïtieve en betrouwbare applicaties te ontwikkelen die voldoen aan de hoogste standaarden.\n\nWij werken nauw samen met UX-designers om via design patterns en design tokens een naadloze integratie van ontwerp naar functionaliteit te realiseren. Dankzij regelmatige LevelUp-sessies, interne projecten en kennisdeling blijven onze Front-End specialisten altijd up-to-date.","Sugar Glaze",{"__component":116,"id":340,"title":341,"subTitle":18,"content":342,"callToActionText":18,"callToActionLink":18,"colorStyle":343,"showAsides":69},49,"Betrouwbaarheid en schaalbaarheid","Voor robuuste Back-End-oplossingen vertrouwen we op onze kennis van .NET. Of het nu gaat om het bouwen van nieuwe applicaties, het onderhouden van bestaande software of het implementeren van geavanceerde authenticatie- en autorisatiesystemen: ons team levert maatwerk dat aansluit bij de specifieke wensen en behoeften van jouw organisatie.\n\nHierbij maken we onder andere gebruik van onze kennis van Azure-services zoals Function Apps, Service Bus en App Services, maar ook tools als Docker en Kubernetes om veilige, schaalbare oplossingen te realiseren.\n\nOnze focus op grondige tests – van unit tests tot integratietests – garandeert stabiliteit en betrouwbaarheid.","White",{"__component":116,"id":345,"title":346,"subTitle":18,"content":347,"callToActionText":18,"callToActionLink":18,"colorStyle":338,"showAsides":69},50,"Full-Stack mogelijkheden","Wat ons uniek maakt, is onze combinatie van Front-End en .NET-expertise. Onze Developers zijn niet alleen gespecialiseerd in het creëren van intuïtieve interfaces, maar beheersen ook de complexiteit van Back-End-architectuur en Azure-integraties. Dit maakt hen volwaardige Full-Stack Developers die moeiteloos schakelen tussen de verschillende onderdelen van jouw project.",{"__component":116,"id":349,"title":350,"subTitle":18,"content":351,"callToActionText":352,"callToActionLink":110,"colorStyle":343,"showAsides":69},48,"Samen naar succes","Onze aanpak is erop gericht om samen met jou het optimale resultaat te behalen. Door proactief mee te denken en onze kennis te delen, zorgen we ervoor dat jouw project voldoet aan de hoogste standaarden van gebruiksvriendelijkheid, betrouwbaarheid en veiligheid. Of het nu gaat om een tijdelijke versterking van je team of volledige projectondersteuning: ons Development-team staat voor je klaar.\n\nOntdek wat wij voor jouw project kunnen betekenen."," Neem contact met ons op voor meer informatie!",{"__component":134,"id":354,"title":355,"callToActionText":137,"callToActionLinkUrl":356,"body":18},103,"Wil je weten wat onze collega’s allemaal kunnen?","https://www.sharevalue.nl/klantcases/rovict-vernieuwt-leerlingadministratie-en-leerlingvolgsysteem-esis",{"id":358,"metaTitle":359,"metaDescription":360,"structuredData":361},27,"Maatwerk software & integraties – ShareValue Development","Van webapps tot koppelingen: onze developers bouwen slimme oplossingen die passen bij jouw Microsoft-omgeving.",{"url":362,"@type":363,"@context":364,"provider":365,"areaServed":369,"description":372,"serviceType":373},"https://www.sharevalue.nl/wat-we-doen/development","Service","https://schema.org",{"url":366,"name":367,"@type":368},"https://www.sharevalue.nl","ShareValue","Organization",{"name":370,"@type":371},"Nederland","Country","Onze developers realiseren maatwerkoplossingen binnen Microsoft-omgevingen. Denk aan webapplicaties, API-integraties, extensies voor Microsoft 365 en koppelingen met externe systemen. Technisch sterk én begrijpelijk ingericht.","Maatwerk softwareontwikkeling en integraties",{"id":60,"title":61,"subTitle":62,"description":63,"shortDescription":64,"slug":65,"createdAt":66,"updatedAt":67,"publishedAt":68,"isCoreExpertise":69,"documentId":70,"image":375,"blocks":378,"midPageBlocks":381,"seo":18},{"id":72,"name":73,"alternativeText":18,"caption":18,"width":74,"height":75,"formats":376,"hash":85,"ext":78,"mime":81,"size":86,"url":87,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":88,"updatedAt":88,"documentId":89,"publishedAt":57},{"thumbnail":377},{"ext":78,"url":79,"hash":80,"mime":81,"name":82,"path":18,"size":83,"width":49,"height":84},[379,380],{"__component":92,"id":93,"title":94,"aside":95,"postType":96,"limit":97},{"__component":106,"id":107,"titleLeft":108,"callToActionTextLeft":109,"callToActionLinkUrlLeft":110,"titleRight":111,"callToActionTextRight":112,"callToActionLinkUrlRight":113},[382,383,384,385,386],{"__component":116,"id":117,"title":118,"subTitle":18,"content":119,"callToActionText":120,"callToActionLink":110,"colorStyle":18,"showAsides":18},{"__component":116,"id":122,"title":123,"subTitle":18,"content":124,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18},{"__component":116,"id":126,"title":127,"subTitle":18,"content":128,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18},{"__component":116,"id":130,"title":131,"subTitle":18,"content":132,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18},{"__component":134,"id":135,"title":136,"callToActionText":137,"callToActionLinkUrl":138,"body":18},{"id":97,"title":388,"subTitle":296,"description":389,"shortDescription":390,"slug":391,"createdAt":392,"updatedAt":393,"publishedAt":394,"isCoreExpertise":69,"documentId":395,"image":396,"blocks":410,"midPageBlocks":418,"seo":18},"Microsoft .NET","Ons team van .NET-experts staat niet alleen klaar om onze klanten te ondersteunen bij diverse implementatie uitdagingen, maar we zijn ook gespecialiseerd in het testen van applicaties op verschillende niveaus, zoals unit tests, integratietests en acceptatietests. We streven naar uitmuntende testdekking om de stabiliteit en betrouwbaarheid van de applicaties te waarborgen.\n\nDaarnaast zijn we bedreven in het gebruik van verschillende Azure-services om schaalbare en veilige oplossingen te bieden aan onze klanten. Zo bieden we met Azure DevOps krachtige tools voor het beheren van de ontwikkeling, het automatiseren van tests en het geautomatiseerd uitrollen naar acceptatie- of productieomgevingen met CI/CD-pipelines.\n\nHet samenwerken met onze klanten staat centraal in ons werk, en we denken proactief mee om samen de meest optimale oplossingen te realiseren.","In de praktijk komen de .NET developers van ShareValue terecht in allerlei verschillende branches met uiteenlopende technische uitdagingen.","dotnet","2023-08-17T11:19:57.991Z","2024-12-13T12:16:04.480Z","2023-08-17T11:22:08.050Z","v9pl553hsjk98esvs5gzoso3",{"id":397,"name":398,"alternativeText":18,"caption":18,"width":74,"height":75,"formats":399,"hash":405,"ext":78,"mime":81,"size":406,"url":407,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":408,"updatedAt":408,"documentId":409,"publishedAt":57},17,"dotnet_logo.png",{"thumbnail":400},{"ext":78,"url":401,"hash":402,"mime":81,"name":403,"path":18,"size":404,"width":49,"height":84},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_dotnet_logo_d38dbc3865.png","thumbnail_dotnet_logo_d38dbc3865","thumbnail_dotnet_logo.png",7.14,"dotnet_logo_d38dbc3865",2.93,"https://incredible-beef-2a6059b946.media.strapiapp.com/dotnet_logo_d38dbc3865.png","2023-08-17T09:47:56.313Z","nnimzsossci29qmi8z0texlp",[411,414],{"__component":92,"id":412,"title":413,"aside":18,"postType":96,"limit":97},167," Lees meer over .NET Development",{"__component":106,"id":415,"titleLeft":416,"callToActionTextLeft":109,"callToActionLinkUrlLeft":110,"titleRight":417,"callToActionTextRight":109,"callToActionLinkUrlRight":110},212,"Heb je een .NET expert nodig?","Weten welke expert op dit moment beschikbaar is?",[419,424,428,432],{"__component":116,"id":420,"title":421,"subTitle":18,"content":422,"callToActionText":423,"callToActionLink":110,"colorStyle":18,"showAsides":18},36,"Bouwen en testen","Onze .NET-experts kunnen uiteraard goede en betrouwbare applicaties ontwikkelen met de laatste .NET-versies. Ook zijn onze collega’s ervaren in het onderhouden van oudere software. We kunnen je helpen met het upgraden en uitbreiden van je applicatie zodat deze aan de laatste wensen en eisen voldoet. Het uitvoeren van uitgebreide unit- en integratietests om de stabiliteit van applicaties te waarborgen, wordt meegenomen als standaard onderdeel van het werk. Met een focus op grondige testdekking streven we ernaar om eventuele bugs vroegtijdig op te sporen en op te lossen, waardoor de algehele kwaliteit van jouw product wordt verbeterd.  \n\nVan Blazor Front-End of REST API’s tot database communicatie, onze .NET-experts hebben er ruime ervaring mee.","Weten wat onze experts voor jou kunnen doen?",{"__component":116,"id":425,"title":426,"subTitle":18,"content":427,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18},37,"Combineren met Azure","Wil je profiteren van Azure-services voor jouw project? Ons team van experts kan je helpen met het selecteren en opzetten van de juiste services. Of je gebruik wil maken van App services, Function Apps, storage of database oplossingen of bijvoorbeeld een Service Bus, onze experts kunnen je helpen bij het kiezen en het realiseren van stabiele, schaalbare en veilige oplossingen die voldoen aan jouw specifieke behoeften.",{"__component":116,"id":429,"title":430,"subTitle":18,"content":431,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18},35,"Houd het veilig!","Om de toegang tot je producten veilig te houden, kan ons team van .NET-experts je helpen bij het opzetten en onderhouden van authenticatie en autorisatie. Onze experts zijn ervaren in het opzetten de juiste entra diensten zodat de toegang tot zowel Front-End als Back-End of deamon-processen op een juiste manier afgehandeld wordt. Ook kunnen we je helpen met het opzetten van verschillende groepen, rechten en rollen, en deze op de juiste manier toepassen binnen de applicatie zodat onterechte toegang op functieniveau geregeld kan worden. Bij het opzetten en implementeren wordt er rekening gehouden met het reduceren van de administratieve overhead zonder concessies te doen aan de beveiliging.",{"__component":134,"id":433,"title":136,"callToActionText":434,"callToActionLinkUrl":435,"body":18},46,"Lees de klantcase over ons werk bij KPN","/klantcases/de-continue-bereikbaarheid-van-een-alarmcentrale",{"__component":106,"id":331,"titleLeft":332,"callToActionTextLeft":109,"callToActionLinkUrlLeft":110,"titleRight":111,"callToActionTextRight":112,"callToActionLinkUrlRight":113,"iconUrlLeft":437,"iconUrlRight":448},{"id":438,"name":439,"alternativeText":18,"caption":18,"width":440,"height":441,"formats":18,"hash":442,"ext":146,"mime":147,"size":443,"url":444,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":445,"updatedAt":446,"documentId":447,"publishedAt":57},7,"people.svg",83,60,"people_6bb632d0d7",1.47,"https://incredible-beef-2a6059b946.media.strapiapp.com/people_6bb632d0d7.svg","2023-08-17T08:31:37.039Z","2024-09-13T08:11:42.408Z","iyvqylwtkx5qokq2hk77ppgf",{"id":449,"name":450,"alternativeText":18,"caption":18,"width":340,"height":441,"formats":18,"hash":451,"ext":146,"mime":147,"size":452,"url":453,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":454,"updatedAt":455,"documentId":456,"publishedAt":57},372,"magnifier.svg","magnifier_d084afba36",1.05,"https://incredible-beef-2a6059b946.media.strapiapp.com/magnifier_d084afba36.svg","2023-11-03T11:13:25.446Z","2026-05-12T12:19:53.518Z","e7czsfz9jg7oi93q44vomebz",[458,478,508,515,545],{"__component":116,"id":335,"title":336,"subTitle":18,"content":337,"callToActionText":18,"callToActionLink":18,"colorStyle":338,"showAsides":69,"imageUrl":459},{"id":460,"name":166,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":461,"hash":474,"ext":23,"mime":172,"size":196,"url":475,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":476,"updatedAt":476,"documentId":477,"publishedAt":57},904,{"large":462,"small":465,"medium":468,"thumbnail":471},{"ext":23,"url":463,"hash":464,"mime":172,"name":173,"path":18,"size":174,"width":29,"height":175},"https://incredible-beef-2a6059b946.media.strapiapp.com/large_development_6e5abdca44.jpg","large_development_6e5abdca44",{"ext":23,"url":466,"hash":467,"mime":172,"name":179,"path":18,"size":180,"width":20,"height":181},"https://incredible-beef-2a6059b946.media.strapiapp.com/small_development_6e5abdca44.jpg","small_development_6e5abdca44",{"ext":23,"url":469,"hash":470,"mime":172,"name":185,"path":18,"size":186,"width":42,"height":187},"https://incredible-beef-2a6059b946.media.strapiapp.com/medium_development_6e5abdca44.jpg","medium_development_6e5abdca44",{"ext":23,"url":472,"hash":473,"mime":172,"name":191,"path":18,"size":192,"width":193,"height":194},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_development_6e5abdca44.jpg","thumbnail_development_6e5abdca44","development_6e5abdca44","https://incredible-beef-2a6059b946.media.strapiapp.com/development_6e5abdca44.jpg","2024-12-13T12:36:11.969Z","qqi9wubjpzs8w6daj98mtc7a",{"__component":116,"id":340,"title":341,"subTitle":18,"content":342,"callToActionText":18,"callToActionLink":18,"colorStyle":343,"showAsides":69,"imageUrl":479},{"id":480,"name":481,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":482,"hash":503,"ext":23,"mime":172,"size":504,"url":505,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":506,"updatedAt":506,"documentId":507,"publishedAt":57},791,"service bus.jpg",{"large":483,"small":488,"medium":493,"thumbnail":498},{"ext":23,"url":484,"hash":485,"mime":172,"name":486,"path":18,"size":487,"width":29,"height":175},"https://incredible-beef-2a6059b946.media.strapiapp.com/large_service_bus_2b48e3a7cc.jpg","large_service_bus_2b48e3a7cc","large_service bus.jpg",82.82,{"ext":23,"url":489,"hash":490,"mime":172,"name":491,"path":18,"size":492,"width":20,"height":181},"https://incredible-beef-2a6059b946.media.strapiapp.com/small_service_bus_2b48e3a7cc.jpg","small_service_bus_2b48e3a7cc","small_service bus.jpg",29.35,{"ext":23,"url":494,"hash":495,"mime":172,"name":496,"path":18,"size":497,"width":42,"height":187},"https://incredible-beef-2a6059b946.media.strapiapp.com/medium_service_bus_2b48e3a7cc.jpg","medium_service_bus_2b48e3a7cc","medium_service bus.jpg",54.72,{"ext":23,"url":499,"hash":500,"mime":172,"name":501,"path":18,"size":502,"width":193,"height":194},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_service_bus_2b48e3a7cc.jpg","thumbnail_service_bus_2b48e3a7cc","thumbnail_service bus.jpg",8.71,"service_bus_2b48e3a7cc",117.51,"https://incredible-beef-2a6059b946.media.strapiapp.com/service_bus_2b48e3a7cc.jpg","2024-08-09T08:35:35.231Z","rbpawsulv6vrsistrk2yupwg",{"__component":116,"id":345,"title":346,"subTitle":18,"content":347,"callToActionText":18,"callToActionLink":18,"colorStyle":338,"showAsides":69,"imageUrl":509},{"id":262,"name":263,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":510,"hash":285,"ext":23,"mime":172,"size":286,"url":287,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":288,"updatedAt":289,"documentId":290,"publishedAt":57},{"large":511,"small":512,"medium":513,"thumbnail":514},{"ext":23,"url":266,"hash":267,"mime":172,"name":268,"path":18,"size":269,"width":29,"height":175},{"ext":23,"url":271,"hash":272,"mime":172,"name":273,"path":18,"size":274,"width":20,"height":181},{"ext":23,"url":276,"hash":277,"mime":172,"name":278,"path":18,"size":279,"width":42,"height":187},{"ext":23,"url":281,"hash":282,"mime":172,"name":283,"path":18,"size":284,"width":193,"height":194},{"__component":116,"id":349,"title":350,"subTitle":18,"content":351,"callToActionText":352,"callToActionLink":110,"colorStyle":343,"showAsides":69,"imageUrl":516},{"id":517,"name":518,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":519,"hash":540,"ext":23,"mime":172,"size":541,"url":542,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":543,"updatedAt":543,"documentId":544,"publishedAt":57},789,"teamwork.jpg",{"large":520,"small":525,"medium":530,"thumbnail":535},{"ext":23,"url":521,"hash":522,"mime":172,"name":523,"path":18,"size":524,"width":29,"height":175},"https://incredible-beef-2a6059b946.media.strapiapp.com/large_teamwork_8f4a7b0c14.jpg","large_teamwork_8f4a7b0c14","large_teamwork.jpg",80.4,{"ext":23,"url":526,"hash":527,"mime":172,"name":528,"path":18,"size":529,"width":20,"height":181},"https://incredible-beef-2a6059b946.media.strapiapp.com/small_teamwork_8f4a7b0c14.jpg","small_teamwork_8f4a7b0c14","small_teamwork.jpg",27.14,{"ext":23,"url":531,"hash":532,"mime":172,"name":533,"path":18,"size":534,"width":42,"height":187},"https://incredible-beef-2a6059b946.media.strapiapp.com/medium_teamwork_8f4a7b0c14.jpg","medium_teamwork_8f4a7b0c14","medium_teamwork.jpg",51.59,{"ext":23,"url":536,"hash":537,"mime":172,"name":538,"path":18,"size":539,"width":193,"height":194},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_teamwork_8f4a7b0c14.jpg","thumbnail_teamwork_8f4a7b0c14","thumbnail_teamwork.jpg",8.11,"teamwork_8f4a7b0c14",116.53,"https://incredible-beef-2a6059b946.media.strapiapp.com/teamwork_8f4a7b0c14.jpg","2024-08-08T10:07:23.468Z","uo85gvimf7llsbaoahqw08m3",{"__component":134,"id":354,"title":355,"callToActionText":137,"callToActionLinkUrl":356,"body":18,"imageUrl":546},{"id":141,"name":142,"alternativeText":18,"caption":18,"width":143,"height":144,"formats":18,"hash":145,"ext":146,"mime":147,"size":148,"url":149,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":150,"updatedAt":151,"documentId":152,"publishedAt":57},{"id":358,"metaTitle":359,"metaDescription":360,"structuredData":548,"metaImage":18,"metaSocial":551},{"url":362,"@type":363,"@context":364,"provider":549,"areaServed":550,"description":372,"serviceType":373},{"url":366,"name":367,"@type":368},{"name":370,"@type":371},[],[553,558,561,564,568,571,574,578,582,585,588,591,594,597,600,604,607,610,613,616,619,622,625,628,631,634,637,641,780],{"__component":554,"id":555,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":557,"introductionText":18},"global.pagesection",612,"","Begrijp me niet verkeerd: ik ben voorstander van unit tests! Maar het is net zo belangrijk om te testen hoe de Front-End en de Back-End samenwerken.\n\nMet end-to-end testen kijk je of de Front-End goed samenwerkt met de Back-End. Zo moet bijvoorbeeld het automatisch invullen van formulieren worden getest met een end-to-end test, maar ook het klikken op knoppen en het navigeren door de pagina’s.\n\nDeze end-to-end tests controleren dus of de Front-End de gegevens vanuit de Back-End correct verwerkt.",{"__component":554,"id":559,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":560,"introductionText":18},610,"## Wat is Cypress?\n\nEr zijn veel end-to-end testtoolkits, maar een van de meest populaire en snelste toolkits is Cypress.\n\nCypress biedt een manier om end-to-end tests te schrijven met JavaScript en de testrunner. Daarnaast biedt het de mogelijkheid om screenshots en video’s op te slaan wanneer een test mislukt. En, waar de meeste organisaties blij van worden: het is open-source. En dat is geweldig.",{"__component":554,"id":562,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":563,"introductionText":18},611,"## End-to-end testen met Cypress\n\nIn de Cypress-documentatie staat een [geweldige tutorial](https://docs.cypress.io/guides/getting-started/writing-your-first-test#Write-your-first-test) waarin je op weg wordt geholpen bij het schrijven van end-to-end-tests.",{"__component":554,"id":565,"title":18,"asideText":566,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":567,"introductionText":18},608,"Stap 1: configureren","### Stap 1: configureren\n\nAan de basis van het project bevindt zich een _cypress.json_, waar je enkele standaardconfiguraties kunt wijzigen. In ons project ziet het er als volgt uit:",{"__component":554,"id":569,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":570,"introductionText":18},609,"```\n{\n  \"testFiles\": \"**/*.e2e.test.js\",\n  \"chromeWebSecurity\": false\n}\n```",{"__component":554,"id":572,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":573,"introductionText":18},613,"In de property _testFiles_ vertellen we Cypress om te zoeken naar bestanden die _e2e.test.js_ in de naam bevatten. Je kunt Cypress configureren met TypeScript, maar in dit geval denk ik dat dat geen toegevoegde waarde heeft. Het vereist een extra transpilatie-stap die langer duurt.",{"__component":554,"id":575,"title":18,"asideText":576,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":577,"introductionText":18},614,"Stap 2: testbestanden opslaan","### Stap 2: testbestanden opslaan\n\nBij unit-testing is het heel gebruikelijk om de tests op te slaan in de componentmappen. In dit geval neemt Cypress de map _cypress/integration_ als root om naar de bestanden te zoeken. We hebben dus een structuur die gebaseerd is op de applicatie zelf, waarin we de end-to-end testbestanden opslaan.",{"__component":554,"id":579,"title":18,"asideText":580,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":581,"introductionText":18},615,"Stap 3: de test voorzien van minimale eisen","### Stap 3: de test voorzien van minimale eisen\n\nElke test heeft ten minste een function _describe()_ met daarin ten minste één _it()_ function. Dit werkt op dezelfde manier als het schrijven van unit-tests:",{"__component":554,"id":583,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":584,"introductionText":18},617,"```\ndescribe('My First Test', () => {\n  it('Does not do much!', () => {\n    expect(true).to.equal(true)\n  })\n})\n```",{"__component":554,"id":586,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":587,"introductionText":18},616,"Dit voorbeeld lijkt op een unit-test. We moeten dus gebruik maken van de Cypress Library. Je kunt dat gebruiken door _cy_ te gebruiken zoals in het onderstaande voorbeeld, waarin we _https://example.cypress.io_ bezoeken.",{"__component":554,"id":589,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":590,"introductionText":18},618,"```\ndescribe('My First Test', () => {\n  it('Visits the Kitchen Sink', () => {\n    cy.visit('https://example.cypress.io')\n  })\n})\n```",{"__component":554,"id":592,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":593,"introductionText":18},619,"Je kunt zien dat de echte browser deze actie uitvoert door _npm run e2e:open_ uit te voeren.\n\nOnze scripts in de _package.json_ zien er als volgt uit:",{"__component":554,"id":595,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":596,"introductionText":18},622,"```\n{\n//...\n\"e2e:run\": \"npx cypress run --config-file cypress.json\",\n\"e2e:open\": \"npx cypress open --config-file cypress.json\",\n\"e2e:open:edge\": \"npx cypress open --browser edge --config-file cypress.json\",\n\"e2e:open:firefox\": \"npx cypress open --browser firefox --config-file cypress.json\"\n//...\n}\n```",{"__component":554,"id":598,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":599,"introductionText":18},620,"Cypress start de toepassing en daar kan je de end-to-end-test selecteren die je wilt uitvoeren. Standaard wordt de Chrome-browser geopend, maar er is ook een optie om het in Firefox of Edge uit te voeren.\n\nCypress biedt een complete bibliotheek en je kunt de [documentatie](https://docs.cypress.io/api/table-of-contents) raadplegen voor meer informatie hierover.",{"__component":554,"id":601,"title":18,"asideText":602,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":603,"introductionText":18},621,"Stap 4: testen!","### Stap 4: testen!\n\nWe zullen vooral zaken die in de browser verschijnen of veranderen testen met end-to-end tests. Een eenvoudig scenario: we bezoeken pagina x en controleren of de h1 de tekst “Dit is een geweldige titel” bevat.",{"__component":554,"id":605,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":606,"introductionText":18},623,"```\ndescribe('My First Test', () => {\n  it('Visits the Kitchen Sink', () => {\n    cy.visit('https://example.cypress.io');\n    cy.get('h1').should('contain.text', ' Dit is een geweldige titel');\n  })\n})\n```",{"__component":554,"id":608,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":609,"introductionText":18},624,"In dit voorbeeld maakt elke methode die je aanroept vanuit de _cy_\\-bibliotheek deel uit van het testen. Zo zal _cy.visit()_ de actie uitvoeren, maar als er geen geldige pagina op die URL staat, zal de test niet slagen. Dus met elke actie die je uitvoert, begin je een ‘assertion’.\n\nIn Cypress zijn er twee verschillende soorten ‘assertions’. _should()_ of _and()_ zijn “Implicit Subjects”. _.expect_ is een “Explicit Subject”. Lees hier meer over in de [Cypress-documentatie](https://docs.cypress.io/api/table-of-contents).",{"__component":554,"id":611,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":612,"introductionText":18},627,"Bij het aanroepen van _cy.get(‘h1’)_ zal het zoeken naar de H1-tag. Wanneer het dat element vindt, gaat de test verder. De test zal falen indien het element niet binnen een paar milliseconden wordt gevonden. Na de get-method kun je een heleboel andere methoden koppelen, zoals:\n\n*   _.contains()_ verwacht dat het element met inhoud uiteindelijk in de DOM zal bestaan.\n*   _.find()_ verwacht ook dat het element uiteindelijk in de DOM zal bestaan.\n*   _.type()_ verwacht dat het element uiteindelijk in een typbare staat zal zijn.\n*   _.click()_ verwacht dat het element zich uiteindelijk in een bruikbare staat bevindt.\n*   _.its()_ verwacht uiteindelijk een property over het huidige onderwerp te vinden.",{"__component":554,"id":614,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":615,"introductionText":18},626,"Dus wat testen we met end-to-end-tests?\n\n1.  Of een element een bepaalde klasse heeft (_cy.get(‘element.selector’).should(‘have.class’, ‘ng-valid’); )_ of juist niet _(cy.get(‘element.selector’).should(‘not.have.class’, ‘ng-valid’);_).\n2.  Of een lijst 3 onderliggende elementen heeft ( _cy.get(‘ul > li’).should(‘have.length’, 3);_ )_._\n3.  Controleren of een invoerveld of tekstgebied een bepaalde waarde heeft ( _cy.get(‘input\\[name=“firstName”\\]’).type(‘Santa Claus’).should(‘have.value’, ‘Santa Claus’);_ ).\n\nBekijk deze [lijst met voorbeelden](https://docs.cypress.io/guides/references/assertions#Adding-New-Assertions) van wat je kunt gebruiken in de should-method.",{"__component":554,"id":617,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":618,"introductionText":18},625,"### Extra voorbeeld:\n\nJe kunt de context van een bovenliggend element toevoegen om assertions uit te voeren, wat handig is bij formulieren.",{"__component":554,"id":620,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":621,"introductionText":18},629,"```\n\u003Cform>\n  \u003Cinput name=\"email\" type=\"email\" />\n  \u003Cinput name=\"password\" type=\"password\" />\n  \u003Cbutton type=\"submit\">Login\u003C/button>\n\u003C/form>\n\ndescribe('My First Test', () => {\n  it('Visits the Kitchen Sink', () => {\n    cy.visit('https://example.cypress.io');\n    cy.get('form').within(($form) => {\n        // you have access to the found form via\n        // the jQuery object $form if you need it\n\n        // cy.get() will only search for elements within form,\n        // not within the entire document\n        cy.get('input[name=\"email\"]').type('john.doe@email.com')\n        cy.get('input[name=\"password\"]').type('password')\n        cy.root().submit()\n    })\n  })\n})\n```",{"__component":554,"id":623,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":624,"introductionText":18},628,"Kijk voor meer voorbeelden van de _within()_\\-method in de [Cypress-documentatie](https://docs.cypress.io/api/commands/within#Examples).",{"__component":554,"id":626,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":627,"introductionText":18},631,"## Herbruikbare functionaliteit\n\nIn het geval van herbruikbare acties die je keer op keer uitvoert, kan je eenvoudige functies schrijven die je in een lib-map kunt plaatsen. Maar Cypress biedt een gebruiksvriendelijkere manier om dit te doen. Dit wordt “custom commands” genoemd; hiervan kan je veel voorbeelden vinden in de documentatie.\n\nMaar een van de beste voorbeelden is het schrijven van de command voor de login. Je moet die code toevoegen aan het bestand _cypress/support/commands.js_.",{"__component":554,"id":629,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":630,"introductionText":18},630,"```\nCypress.Commands.add('login', (userType, options = {}) => {\n  // this is an example of skipping your UI and logging in programmatically\n\n  // setup some basic types\n  // and user properties\n  const types = {\n    admin: {\n      name: 'Jane Lane',\n      admin: true,\n    },\n    user: {\n      name: 'Jim Bob',\n      admin: false,\n    },\n  }\n\n  // grab the user\n  const user = types[userType]\n\n  // create the user first in the DB\n  cy.request({\n    url: '/seed/users', // assuming you've exposed a seeds route\n    method: 'POST',\n    body: user,\n  })\n    .its('body')\n    .then((body) => {\n      // assuming the server sends back the user details\n      // including a randomly generated password\n      //\n      // we can now login as this newly created user\n      cy.request({\n        url: '/login',\n        method: 'POST',\n        body: {\n          email: body.email,\n          password: body.password,\n        },\n      })\n    })\n})\n```",{"__component":554,"id":632,"title":18,"asideText":556,"underline":69,"centered":69,"blankAside":69,"aside":18,"content":633,"introductionText":18},632,"## Conclusie\n\nNu is het aan jou om geweldige end-to-end tests te schrijven met Cypress! Perfecte tests bestaan niet, maar als je ze elke keer een beetje optimaliseert, wordt het je ‘source of truth’. De end-to-end-tests zijn geweldig voor developers om uit te voeren na het bouwen van een nieuwe functie of het wijzigen van een bestaande, omdat het onmogelijk is om alle testscenario’s te onthouden.\n\nVeel succes en plezier met het schrijven van waardevolle end-to-end tests! Als we je hierbij kunnen helpen, doen mijn collega’s en ik dat natuurlijk graag.",{"__component":635,"id":636,"title":18,"showBlankAside":303},"global.social-sharing",77,{"__component":638,"id":429,"name":639,"jobTitle":640},"strapi.author-card","Raymon","Developer",{"__component":92,"id":433,"title":322,"aside":18,"postType":96,"limit":97,"expertise":642},[643,731],{"id":97,"title":388,"subTitle":296,"description":389,"shortDescription":390,"slug":391,"createdAt":392,"updatedAt":393,"publishedAt":394,"isCoreExpertise":69,"documentId":395,"image":644,"blocks":647,"midPageBlocks":661,"seo":18},{"id":397,"name":398,"alternativeText":18,"caption":18,"width":74,"height":75,"formats":645,"hash":405,"ext":78,"mime":81,"size":406,"url":407,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":408,"updatedAt":408,"documentId":409,"publishedAt":57},{"thumbnail":646},{"ext":78,"url":401,"hash":402,"mime":81,"name":403,"path":18,"size":404,"width":49,"height":84},[648,651],{"__component":92,"id":412,"title":413,"aside":18,"postType":96,"limit":97,"expertise":649},[650],{"id":97,"title":388,"subTitle":296,"description":389,"shortDescription":390,"slug":391,"createdAt":392,"updatedAt":393,"publishedAt":394,"isCoreExpertise":69,"documentId":395},{"__component":106,"id":415,"titleLeft":416,"callToActionTextLeft":109,"callToActionLinkUrlLeft":110,"titleRight":417,"callToActionTextRight":109,"callToActionLinkUrlRight":110,"iconUrlLeft":652,"iconUrlRight":653},{"id":141,"name":142,"alternativeText":18,"caption":18,"width":143,"height":144,"formats":18,"hash":145,"ext":146,"mime":147,"size":148,"url":149,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":150,"updatedAt":151,"documentId":152,"publishedAt":57},{"id":654,"name":655,"alternativeText":18,"caption":18,"width":144,"height":144,"formats":18,"hash":656,"ext":146,"mime":147,"size":657,"url":658,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":659,"updatedAt":659,"documentId":660,"publishedAt":57},250,"looking-glass.svg","looking_glass_cfa3801802",0.6,"https://incredible-beef-2a6059b946.media.strapiapp.com/looking_glass_cfa3801802.svg","2023-10-11T09:43:10.911Z","suv3p7h0kw7jdnuddk1l2rdu",[662,692,699,729],{"__component":116,"id":420,"title":421,"subTitle":18,"content":422,"callToActionText":423,"callToActionLink":110,"colorStyle":18,"showAsides":18,"imageUrl":663},{"id":664,"name":665,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":666,"hash":687,"ext":23,"mime":172,"size":688,"url":689,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":690,"updatedAt":690,"documentId":691,"publishedAt":57},790,"code matrix.jpg",{"large":667,"small":672,"medium":677,"thumbnail":682},{"ext":23,"url":668,"hash":669,"mime":172,"name":670,"path":18,"size":671,"width":29,"height":175},"https://incredible-beef-2a6059b946.media.strapiapp.com/large_code_matrix_939256fff4.jpg","large_code_matrix_939256fff4","large_code matrix.jpg",164.22,{"ext":23,"url":673,"hash":674,"mime":172,"name":675,"path":18,"size":676,"width":20,"height":181},"https://incredible-beef-2a6059b946.media.strapiapp.com/small_code_matrix_939256fff4.jpg","small_code_matrix_939256fff4","small_code matrix.jpg",42.02,{"ext":23,"url":678,"hash":679,"mime":172,"name":680,"path":18,"size":681,"width":42,"height":187},"https://incredible-beef-2a6059b946.media.strapiapp.com/medium_code_matrix_939256fff4.jpg","medium_code_matrix_939256fff4","medium_code matrix.jpg",97.04,{"ext":23,"url":683,"hash":684,"mime":172,"name":685,"path":18,"size":686,"width":193,"height":194},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_code_matrix_939256fff4.jpg","thumbnail_code_matrix_939256fff4","thumbnail_code matrix.jpg",8.35,"code_matrix_939256fff4",258.04,"https://incredible-beef-2a6059b946.media.strapiapp.com/code_matrix_939256fff4.jpg","2024-08-09T08:30:59.615Z","s5v68ezvz0ho9m6ot0mbk8z2",{"__component":116,"id":425,"title":426,"subTitle":18,"content":427,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18,"imageUrl":693},{"id":480,"name":481,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":694,"hash":503,"ext":23,"mime":172,"size":504,"url":505,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":506,"updatedAt":506,"documentId":507,"publishedAt":57},{"large":695,"small":696,"medium":697,"thumbnail":698},{"ext":23,"url":484,"hash":485,"mime":172,"name":486,"path":18,"size":487,"width":29,"height":175},{"ext":23,"url":489,"hash":490,"mime":172,"name":491,"path":18,"size":492,"width":20,"height":181},{"ext":23,"url":494,"hash":495,"mime":172,"name":496,"path":18,"size":497,"width":42,"height":187},{"ext":23,"url":499,"hash":500,"mime":172,"name":501,"path":18,"size":502,"width":193,"height":194},{"__component":116,"id":429,"title":430,"subTitle":18,"content":431,"callToActionText":18,"callToActionLink":18,"colorStyle":18,"showAsides":18,"imageUrl":700},{"id":701,"name":702,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":703,"hash":724,"ext":23,"mime":172,"size":725,"url":726,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":727,"updatedAt":727,"documentId":728,"publishedAt":57},792,"security dotnet.jpg",{"large":704,"small":709,"medium":714,"thumbnail":719},{"ext":23,"url":705,"hash":706,"mime":172,"name":707,"path":18,"size":708,"width":29,"height":175},"https://incredible-beef-2a6059b946.media.strapiapp.com/large_security_dotnet_a65d687baf.jpg","large_security_dotnet_a65d687baf","large_security dotnet.jpg",38.7,{"ext":23,"url":710,"hash":711,"mime":172,"name":712,"path":18,"size":713,"width":20,"height":181},"https://incredible-beef-2a6059b946.media.strapiapp.com/small_security_dotnet_a65d687baf.jpg","small_security_dotnet_a65d687baf","small_security dotnet.jpg",13.37,{"ext":23,"url":715,"hash":716,"mime":172,"name":717,"path":18,"size":718,"width":42,"height":187},"https://incredible-beef-2a6059b946.media.strapiapp.com/medium_security_dotnet_a65d687baf.jpg","medium_security_dotnet_a65d687baf","medium_security dotnet.jpg",24.75,{"ext":23,"url":720,"hash":721,"mime":172,"name":722,"path":18,"size":723,"width":193,"height":194},"https://incredible-beef-2a6059b946.media.strapiapp.com/thumbnail_security_dotnet_a65d687baf.jpg","thumbnail_security_dotnet_a65d687baf","thumbnail_security dotnet.jpg",4.63,"security_dotnet_a65d687baf",57.25,"https://incredible-beef-2a6059b946.media.strapiapp.com/security_dotnet_a65d687baf.jpg","2024-08-09T08:36:56.895Z","srupv8bm7kvcgseu2efeadhk",{"__component":134,"id":433,"title":136,"callToActionText":434,"callToActionLinkUrl":435,"body":18,"imageUrl":730},{"id":141,"name":142,"alternativeText":18,"caption":18,"width":143,"height":144,"formats":18,"hash":145,"ext":146,"mime":147,"size":148,"url":149,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":150,"updatedAt":151,"documentId":152,"publishedAt":57},{"id":294,"title":295,"subTitle":296,"description":297,"shortDescription":298,"slug":299,"createdAt":300,"updatedAt":301,"publishedAt":302,"isCoreExpertise":303,"documentId":304,"image":732,"blocks":735,"midPageBlocks":744,"seo":775},{"id":306,"name":307,"alternativeText":18,"caption":18,"width":74,"height":75,"formats":733,"hash":314,"ext":78,"mime":81,"size":60,"url":315,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":316,"updatedAt":317,"documentId":318,"publishedAt":57},{"thumbnail":734},{"ext":78,"url":310,"hash":311,"mime":81,"name":312,"path":18,"size":313,"width":49,"height":84},[736,741],{"__component":92,"id":321,"title":322,"aside":18,"postType":96,"limit":97,"expertise":737},[738,739,740],{"id":294,"title":295,"subTitle":296,"description":297,"shortDescription":298,"slug":299,"createdAt":300,"updatedAt":301,"publishedAt":302,"isCoreExpertise":303,"documentId":304},{"id":60,"title":61,"subTitle":62,"description":63,"shortDescription":64,"slug":65,"createdAt":66,"updatedAt":67,"publishedAt":68,"isCoreExpertise":69,"documentId":70},{"id":97,"title":388,"subTitle":296,"description":389,"shortDescription":390,"slug":391,"createdAt":392,"updatedAt":393,"publishedAt":394,"isCoreExpertise":69,"documentId":395},{"__component":106,"id":331,"titleLeft":332,"callToActionTextLeft":109,"callToActionLinkUrlLeft":110,"titleRight":111,"callToActionTextRight":112,"callToActionLinkUrlRight":113,"iconUrlLeft":742,"iconUrlRight":743},{"id":438,"name":439,"alternativeText":18,"caption":18,"width":440,"height":441,"formats":18,"hash":442,"ext":146,"mime":147,"size":443,"url":444,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":445,"updatedAt":446,"documentId":447,"publishedAt":57},{"id":449,"name":450,"alternativeText":18,"caption":18,"width":340,"height":441,"formats":18,"hash":451,"ext":146,"mime":147,"size":452,"url":453,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":454,"updatedAt":455,"documentId":456,"publishedAt":57},[745,752,759,766,773],{"__component":116,"id":335,"title":336,"subTitle":18,"content":337,"callToActionText":18,"callToActionLink":18,"colorStyle":338,"showAsides":69,"imageUrl":746},{"id":460,"name":166,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":747,"hash":474,"ext":23,"mime":172,"size":196,"url":475,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":476,"updatedAt":476,"documentId":477,"publishedAt":57},{"large":748,"small":749,"medium":750,"thumbnail":751},{"ext":23,"url":463,"hash":464,"mime":172,"name":173,"path":18,"size":174,"width":29,"height":175},{"ext":23,"url":466,"hash":467,"mime":172,"name":179,"path":18,"size":180,"width":20,"height":181},{"ext":23,"url":469,"hash":470,"mime":172,"name":185,"path":18,"size":186,"width":42,"height":187},{"ext":23,"url":472,"hash":473,"mime":172,"name":191,"path":18,"size":192,"width":193,"height":194},{"__component":116,"id":340,"title":341,"subTitle":18,"content":342,"callToActionText":18,"callToActionLink":18,"colorStyle":343,"showAsides":69,"imageUrl":753},{"id":480,"name":481,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":754,"hash":503,"ext":23,"mime":172,"size":504,"url":505,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":506,"updatedAt":506,"documentId":507,"publishedAt":57},{"large":755,"small":756,"medium":757,"thumbnail":758},{"ext":23,"url":484,"hash":485,"mime":172,"name":486,"path":18,"size":487,"width":29,"height":175},{"ext":23,"url":489,"hash":490,"mime":172,"name":491,"path":18,"size":492,"width":20,"height":181},{"ext":23,"url":494,"hash":495,"mime":172,"name":496,"path":18,"size":497,"width":42,"height":187},{"ext":23,"url":499,"hash":500,"mime":172,"name":501,"path":18,"size":502,"width":193,"height":194},{"__component":116,"id":345,"title":346,"subTitle":18,"content":347,"callToActionText":18,"callToActionLink":18,"colorStyle":338,"showAsides":69,"imageUrl":760},{"id":262,"name":263,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":761,"hash":285,"ext":23,"mime":172,"size":286,"url":287,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":288,"updatedAt":289,"documentId":290,"publishedAt":57},{"large":762,"small":763,"medium":764,"thumbnail":765},{"ext":23,"url":266,"hash":267,"mime":172,"name":268,"path":18,"size":269,"width":29,"height":175},{"ext":23,"url":271,"hash":272,"mime":172,"name":273,"path":18,"size":274,"width":20,"height":181},{"ext":23,"url":276,"hash":277,"mime":172,"name":278,"path":18,"size":279,"width":42,"height":187},{"ext":23,"url":281,"hash":282,"mime":172,"name":283,"path":18,"size":284,"width":193,"height":194},{"__component":116,"id":349,"title":350,"subTitle":18,"content":351,"callToActionText":352,"callToActionLink":110,"colorStyle":343,"showAsides":69,"imageUrl":767},{"id":517,"name":518,"alternativeText":18,"caption":18,"width":19,"height":167,"formats":768,"hash":540,"ext":23,"mime":172,"size":541,"url":542,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":543,"updatedAt":543,"documentId":544,"publishedAt":57},{"large":769,"small":770,"medium":771,"thumbnail":772},{"ext":23,"url":521,"hash":522,"mime":172,"name":523,"path":18,"size":524,"width":29,"height":175},{"ext":23,"url":526,"hash":527,"mime":172,"name":528,"path":18,"size":529,"width":20,"height":181},{"ext":23,"url":531,"hash":532,"mime":172,"name":533,"path":18,"size":534,"width":42,"height":187},{"ext":23,"url":536,"hash":537,"mime":172,"name":538,"path":18,"size":539,"width":193,"height":194},{"__component":134,"id":354,"title":355,"callToActionText":137,"callToActionLinkUrl":356,"body":18,"imageUrl":774},{"id":141,"name":142,"alternativeText":18,"caption":18,"width":143,"height":144,"formats":18,"hash":145,"ext":146,"mime":147,"size":148,"url":149,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":150,"updatedAt":151,"documentId":152,"publishedAt":57},{"id":358,"metaTitle":359,"metaDescription":360,"structuredData":776,"metaImage":18,"metaSocial":779},{"url":362,"@type":363,"@context":364,"provider":777,"areaServed":778,"description":372,"serviceType":373},{"url":366,"name":367,"@type":368},{"name":370,"@type":371},[],{"__component":106,"id":781,"titleLeft":782,"callToActionTextLeft":783,"callToActionLinkUrlLeft":784,"titleRight":108,"callToActionTextRight":109,"callToActionLinkUrlRight":785,"iconUrlLeft":786,"iconUrlRight":787},104,"Hoor van onze experts hoe leuk ShareValue is","Lees de verhalen van onze collega's","https://www.sharevalue.nl/word-onze-collega/collegas-aan-het-woord","https://www.sharevalue.nl/contact",{"id":438,"name":439,"alternativeText":18,"caption":18,"width":440,"height":441,"formats":18,"hash":442,"ext":146,"mime":147,"size":443,"url":444,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":445,"updatedAt":446,"documentId":447,"publishedAt":57},{"id":141,"name":142,"alternativeText":18,"caption":18,"width":143,"height":144,"formats":18,"hash":145,"ext":146,"mime":147,"size":148,"url":149,"previewUrl":18,"provider":54,"provider_metadata":18,"createdAt":150,"updatedAt":151,"documentId":152,"publishedAt":57},{"id":789,"metaTitle":790,"metaDescription":791,"structuredData":792,"metaImage":18,"metaSocial":819},126,"End-to-end testen met Cypress in 4 stappen | ShareValue","In deze blog lees je hoe je Cypress inzet voor end-to-end tests. In 4 praktische stappen test je betrouwbaar je volledige gebruikersflow.",[793,802],{"url":794,"@type":795,"author":796,"@context":364,"headline":790,"publisher":797,"description":791,"datePublished":801},"https://www.sharevalue.nl/blogs/in-vier-stappen-end-to-end-testen-met-cypress","BlogPosting",{},{"logo":798,"name":367,"@type":368},{"url":799,"@type":800},"https://www.sharevalue.nl/_nuxt/img/sharevalue-logo.3c5e7cb.svg","ImageObject","2023-07-13",{"@type":803,"@context":364,"mainEntity":804},"FAQPage",[805,811,815],{"name":806,"@type":807,"acceptedAnswer":808},"Wat is Cypress?","Question",{"text":809,"@type":810},"Cypress is een JavaScript-gebaseerde testtool voor end-to-end testing, waarmee je gebruikersflows automatisch kunt testen in de browser.","Answer",{"name":812,"@type":807,"acceptedAnswer":813},"Waarom kiezen voor Cypress voor E2E-tests?",{"text":814,"@type":810},"Omdat het snel, betrouwbaar en makkelijk op te zetten is. Je ziet direct wat er gebeurt dankzij de visuele interface.",{"name":816,"@type":807,"acceptedAnswer":817},"Hoe begin je met Cypress?",{"text":818,"@type":810},"Installeer Cypress via npm, definieer je testcases in JavaScript en voer ze lokaal of in CI/CD-omgevingen automatisch uit.",[],{"pagination":821},{"page":822,"pageSize":135},1,{},1778595848196]