From Napkin to App: Rapidly Prototype and Build for Mobile in DaysApigee | Google Cloud
This document provides an overview of how to rapidly prototype an app. It discusses ideating app ideas, designing prototypes with sketches, developing click-through demos using HTML and JavaScript, and deploying to mobile devices using tools like TestFlight and Zubhium. The presentation establishes guiding principles like "budget = lifestyle" and "document everything", and recommends generating many app ideas and using visual comps to get buy-in. It also includes a shopping list of recommended tools and platforms for prototyping like UI Stencils, GitHub, and Apigee services.
This document discusses using Node.js and Redis to build a real-time web application. Ruby code is used to model users who can follow each other. When a user updates their status, Redis publishes the update to followers' timelines. Node.js code subscribes to Redis channels and sends updates to connected clients in real-time via websockets. This allows building a Twitter-like application where the web interface updates without reloading as users publish new statuses.
Firefox OS, le web de demain - Epita - 2014-06-06Frédéric Harper
HTML5 est un pas de géant dans la bonne direction: il apporte plusieurs fonctionnalités dont les développeurs avaient besoin pour créer plus facilement de meilleures expériences web. Il a aussi fait naitre un débat sans fin: applications natives ou applications web! Lors de cette présentation, Frédéric Harper vous montrera comment le web ouvert peut vous aider à créer des applications mobiles de qualités. Vous en apprendrez plus sur des technologies telles que les WebAPIs, ainsi que les outils qui vous permettront de viser un nouveau marché avec Firefox OS et le web d’aujourd'hui.
Retour d’expérience technique de plus d’un an de mission chez TF1 sur #Go, #GraphQL, des micro-services contactés en #gRPC suivant un contrat d’interface avec #Protobuf.
J’ai aussi abordé les sujets de #WebPerf avec du cache applicatif et HTTP et enfin un 3ème volet sur le déploiement #Kubernetes, #Kustomize, le monitoring avec #Grafana et #Prometheus et la façon dont les développeurs travaillent en local avec tous ces micro-services.
From Napkin to App: Rapidly Prototype and Build for Mobile in DaysApigee | Google Cloud
This document provides an overview of how to rapidly prototype an app. It discusses ideating app ideas, designing prototypes with sketches, developing click-through demos using HTML and JavaScript, and deploying to mobile devices using tools like TestFlight and Zubhium. The presentation establishes guiding principles like "budget = lifestyle" and "document everything", and recommends generating many app ideas and using visual comps to get buy-in. It also includes a shopping list of recommended tools and platforms for prototyping like UI Stencils, GitHub, and Apigee services.
This document discusses using Node.js and Redis to build a real-time web application. Ruby code is used to model users who can follow each other. When a user updates their status, Redis publishes the update to followers' timelines. Node.js code subscribes to Redis channels and sends updates to connected clients in real-time via websockets. This allows building a Twitter-like application where the web interface updates without reloading as users publish new statuses.
Firefox OS, le web de demain - Epita - 2014-06-06Frédéric Harper
HTML5 est un pas de géant dans la bonne direction: il apporte plusieurs fonctionnalités dont les développeurs avaient besoin pour créer plus facilement de meilleures expériences web. Il a aussi fait naitre un débat sans fin: applications natives ou applications web! Lors de cette présentation, Frédéric Harper vous montrera comment le web ouvert peut vous aider à créer des applications mobiles de qualités. Vous en apprendrez plus sur des technologies telles que les WebAPIs, ainsi que les outils qui vous permettront de viser un nouveau marché avec Firefox OS et le web d’aujourd'hui.
Retour d’expérience technique de plus d’un an de mission chez TF1 sur #Go, #GraphQL, des micro-services contactés en #gRPC suivant un contrat d’interface avec #Protobuf.
J’ai aussi abordé les sujets de #WebPerf avec du cache applicatif et HTTP et enfin un 3ème volet sur le déploiement #Kubernetes, #Kustomize, le monitoring avec #Grafana et #Prometheus et la façon dont les développeurs travaillent en local avec tous ces micro-services.
Nouvelle application, la décision de partir sur Node.js est prise. L'application commence petite puis le nombre de features et de développeurs augmentent. Les 1ers refactoring cossus arrivent et ne se passent pas vraiment comme prévu pourtant nous avons 100% de coverage… Est ce lié au manque de typage de JS ? Est ce que TypeScript aurait évité ça ? Ou finalement est ce que c'est notre façon d'écrire notre code (et les tests) qu'il faut remettre en cause ?
Après quelques refactoring et bugfix l'application part en prod. Les utilisateurs commencent à remonter quelques soucis, en regardant les logs on prend peur, très difficile de s'y retrouver… Venant du monde Java on est surpris par le manque de maturité des frameworks et librairies Node.js, notamment au niveau de la gestion des logs et des erreurs.
Toutes ces (mes)aventures nous ont permis de prendre du recul sur le développement avec JS, nous vous proposons un retour d'expérience sur cette odyssée qui est toujours en cours.
La toute première présentation du Toulouse-JUG le 13 mai 2009 !
Le développement sur mobile en J2ME : contraintes, techniques, difficultés, outils et... une pléthore de téléphones pour les tests !
Vous avez l’impression que vous devez jeter la moitié de votre code tous les 6 mois ? Plus le temps passe, moins votre application mobile est maintenable ?
Injection de dépendances, routage ou gestion des environnements, venez découvrir nos conseils pour vous aider à réaliser des applications mobiles évolutives conçues pour durer dans le temps.
Par Jean-Christophe Pastant, Mobile Engineer chez Xebia
Toutes les informations sur xebicon.fr
Les applications web recourent de plus en plus au javascript, et on commence maintenant à recourir au javascript pour les parties serveur avec des outils comme Node.js TypeScript est un nouveau language permettant d'annoter et de structurer son code javascript, afin d'en faciliter la fiabilité et la maintenance. Dans cette session, nous vous présenterons les bases de TypeScript et comment tirer le meilleur parti de ce nouvel outil dans vos applications.
2 démos :
* https://glitch.com/~reality-virtuel-demo
* https://glitch.com/~xr-a-frame-and-drupal
Présentation effectuée au DrupalCamp Paris 2019 sur "Créer uvotre expérience de réalité virtuelle avec Drupal" par Christophe Villeneuve .
La conférence montrera AR / VR / XR ou la WebAR / WebVR / WebXR qui affichera du contenu venant du CMS Drupal avec le framework aframeVR
The document discusses Specification By Example testing using Cucumber and alternative frameworks like Turnip, Spinach, and Maniok. It summarizes Cucumber's usage of Gherkin to write tests in plain text and map them to Ruby step definitions, but notes issues with organizing step definitions, slow test runs, and its acceptance testing DSL. Alternative frameworks aim to address Cucumber's limitations. Maniok is introduced as a new RSpec-based framework that uses a declarative style inside RSpec scenarios without plain text mapping between features and steps.
Nouvelle application, la décision de partir sur Node.js est prise. L'application commence petite puis le nombre de features et de développeurs augmentent. Les 1ers refactoring cossus arrivent et ne se passent pas vraiment comme prévu pourtant nous avons 100% de coverage… Est ce lié au manque de typage de JS ? Est ce que TypeScript aurait évité ça ? Ou finalement est ce que c'est notre façon d'écrire notre code (et les tests) qu'il faut remettre en cause ?
Après quelques refactoring et bugfix l'application part en prod. Les utilisateurs commencent à remonter quelques soucis, en regardant les logs on prend peur, très difficile de s'y retrouver… Venant du monde Java on est surpris par le manque de maturité des frameworks et librairies Node.js, notamment au niveau de la gestion des logs et des erreurs.
Toutes ces (mes)aventures nous ont permis de prendre du recul sur le développement avec JS, nous vous proposons un retour d'expérience sur cette odyssée qui est toujours en cours.
La toute première présentation du Toulouse-JUG le 13 mai 2009 !
Le développement sur mobile en J2ME : contraintes, techniques, difficultés, outils et... une pléthore de téléphones pour les tests !
Vous avez l’impression que vous devez jeter la moitié de votre code tous les 6 mois ? Plus le temps passe, moins votre application mobile est maintenable ?
Injection de dépendances, routage ou gestion des environnements, venez découvrir nos conseils pour vous aider à réaliser des applications mobiles évolutives conçues pour durer dans le temps.
Par Jean-Christophe Pastant, Mobile Engineer chez Xebia
Toutes les informations sur xebicon.fr
Les applications web recourent de plus en plus au javascript, et on commence maintenant à recourir au javascript pour les parties serveur avec des outils comme Node.js TypeScript est un nouveau language permettant d'annoter et de structurer son code javascript, afin d'en faciliter la fiabilité et la maintenance. Dans cette session, nous vous présenterons les bases de TypeScript et comment tirer le meilleur parti de ce nouvel outil dans vos applications.
2 démos :
* https://glitch.com/~reality-virtuel-demo
* https://glitch.com/~xr-a-frame-and-drupal
Présentation effectuée au DrupalCamp Paris 2019 sur "Créer uvotre expérience de réalité virtuelle avec Drupal" par Christophe Villeneuve .
La conférence montrera AR / VR / XR ou la WebAR / WebVR / WebXR qui affichera du contenu venant du CMS Drupal avec le framework aframeVR
The document discusses Specification By Example testing using Cucumber and alternative frameworks like Turnip, Spinach, and Maniok. It summarizes Cucumber's usage of Gherkin to write tests in plain text and map them to Ruby step definitions, but notes issues with organizing step definitions, slow test runs, and its acceptance testing DSL. Alternative frameworks aim to address Cucumber's limitations. Maniok is introduced as a new RSpec-based framework that uses a declarative style inside RSpec scenarios without plain text mapping between features and steps.
The document discusses using Selenium Grid to run acceptance tests in parallel across multiple machines for faster test execution. Selenium Grid allows distributing Selenium tests across a hub that manages multiple remote control nodes, enabling tests to run simultaneously on different browsers and platforms. Using a Grid can significantly speed up test runs by running tests in parallel rather than sequentially, as demonstrated by a 50% reduction in test time from 10 minutes to 3 hours.
User Acceptance Testing Driven by Humans telling Stories (with RSpec)Jean-Michel Garnier
The document discusses using human-readable stories and scenarios to define acceptance criteria for software features. It presents a format for writing stories with scenarios in plain text, and shows how the RSpec testing framework can be used to programmatically bind the plain text stories and scenarios to automated tests. The stories follow a Given-When-Then structure and allow non-technical users and developers to communicate acceptance criteria using a shared language and format.
This document discusses the origins and principles of behavior-driven development (BDD) and testing. It notes that BDD originated from ideas in the 1975 book "The Mythical Man-Month" and the first testing framework was created in 1994. It also provides an example test case class and method for testing a Set, and mentions a mind map that provides more information about the presentation on the topic.
1) The document discusses the history and importance of testing in software development from the 1970s to today, including influential authors like Fred Brooks, Kent Beck, and Martin Fowler.
2) It introduces the Ruby testing framework RSpec, which uses a natural language style to specify tests and has over 30,000 downloads.
3) The presentation covers testing practices with RSpec like test-driven development (TDD), behavior-driven development (BDD), refactoring without introducing regressions, and using mocks for interfaces.
The document discusses several topics related to sustainable development including world population and ecological footprint, energy efficiency, food, transport, and indirect emissions. It notes that sustainable development aims to meet current needs without compromising the ability of future generations to meet their needs by deteriorating the natural environment. Specific strategies mentioned include buying local food, using public transport, choosing more fuel efficient vehicles, and improving energy efficiency in homes and appliances.
El documento resume una conferencia sobre pruebas con Ruby on Rails. Explica brevemente la historia de las pruebas y el desarrollo guiado por pruebas, y describe cómo Rails facilita y automatiza las pruebas unitarias, de integración, funcionales y de aceptación del usuario a través de herramientas como Test::Unit, fixtures, mocks y Selenium.
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO Technology
En cette année 2024 qui s’annonce sous le signe de la complexité, avec :
- L’explosion de la Gen AI
-Un contexte socio-économique sous tensions
- De forts enjeux sur le Sustainable et la régulation IT
- Une archipélisation des lieux de travail post-Covid
Découvrez les Tech trends incontournables pour délivrer vos produits stratégiques.
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...OCTO Technology
par Claude Camus (Coach agile d'organisation @OCTO Technology) et Gilles Masy (Organizational Coach @OCTO Technology)
Les équipes infrastructure, sécurité, production, ou cloud, doivent consacrer du temps à la modernisation de leurs outils (automatisation, cloud, etc) et de leurs pratiques (DevOps, SRE, etc). Dans le même temps, elles doivent répondre à une avalanche croissante de demandes, tout en maintenant un niveau de qualité de service optimal.
Habitué des environnements développeurs, les transformations agiles négligent les particularités des équipes OPS. Lors de ce comptoir, nous vous partagerons notre proposition de valeur de l'agilité@OPS, qui embarquera vos équipes OPS en Classe Business (Agility), et leur fera dire : "nous ne reviendrons pas en arrière".
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
4. 2 frameworks de test:
test/functional/
Test::Unit
assert_select
assert_select_RJS
OU
RSpec specs/helpers
spec/views
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
4
5. RSpec minimaliste des Vues
describe quot;/events/showquot; do
before(:each) do
@event = stub_event_in_barcelona
assigns[:event] = @event
render('/events/show')
end
it quot;should render correctly an eventquot; do
response.should include_text( @event.name )
end
end
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
5
6. TDD javascript avec ScrewUnit
/! Ne pas tester jQuery ou
Prototype /!
http://pivotallabs.com/users/nick/blog/articles/447-screw-unit-0-3
script/plugin install git://github.com/pivotal/screw-unit-server.git
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
6
8. script/screw_unit_server
http://0.0.0.0:8080/specs
Onclick: lance le test
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
8
14. /features/calculatrice.feature
Fonctionnalité: Addition
Afin de financer mon bonus Valeur
avec l'argent des pigeons
En tant que trader Rôle
Je souhaite pouvoir additionner 2 chiffres
Fonctionnalité
14
15. GIVEN: contexte, pré-conditions
Scénario:
Addition de produits dérivés
GIVEN
Étant donné que je tape 55000000000000
Et que je tape 2
Lorsque je tape additionner
Alors le résultat doit être 5500000000002
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
15
16. WHEN: événement, action
Scénario:
Addition de produits dérivés
Étant donné que je tape 55000000000000
Et que je tape 2
WHEN
Lorsque je tape additionner
Alors le résultat doit être 5500000000002
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
16
17. Boulot du développeur
Aider le client à rédiger des critères
d'acceptance
Ecrire le code ruby de chaque « step »
pour que les fonctionnalités soient
exécutées
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
17
18. THEN: résultat, post-conditions
Scénario:
Addition de produits dérivés
Étant donné que je tape 55000000000000
Et que je tape 2
Lorsque je tape additionner
THEN
Alors le résultat doit être 5500000000002
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
18
19. /features/step_definitions/calculatrice.rb
Be fo re do
@calc = Ca l cu la t r i ce.new
end
# Etant donné que je tape / Et que je tape
Given /que je tape (d+)/ do |n|
@calc.push n.to_i
end
# Lorsque je tape additionner
When 'je tape additionner' do
@result = @calc.additionner
end
# Alors le résultat doit être ...
Then /le résultat doit être (d*)/ do |expected|
@result.should == expected.to_i
end Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons. 19
21. Documentation à jour + exécutable
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
21
22. Le format de Tables à la FIT
Etant donné que je tape 2
Et que je tape 1
Lorsque je tape additionner
Alors le résultat doit être 3
Plus d'exemples:
| a | b | somme |
|2|2|4 |
|2|3|5 |
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
22
23. rake features
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
23
24. Tests Acceptance
Utilisateur
avec cucumber + webrat
http://github.com/brynary/webrat
24
25. Web Application Ruby Acceptance Testing
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
25
26. Cucumber /features/step_definitions/
common_webrat_steps .fr
Given /^que je suis dans la page de quot;(.*)quot;$/ do |url|
visits url
end
When /^je tape quot;(.*)quot; dans le champ quot;(.*)quot;$/ do |
value, field|
fills_in(field, :with => value)
end
When /^je clique sur le bouton quot;(.*)quot;$/ do |button|
clicks_button(button)
end
Then /^je devrais voir le texte quot;(.*)quot;$/ do |text|
response_body.should contain(text)
end 26
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
27. Limitation de Webrat::RailsSession
« simule » le butineur, pas de render de
la page
=> Rapide :-)
=> Pas de support de javascript :-(
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
27
28. Webrat::CeleritySession
1.1.4 et 6 ou
Basé sur la librarie java HtmlUnit
jgem install celerity + toutes tes gems du
projet
jruby -S rake features
Prototype Ajax.update ne fonctionne pas :-(
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
28
29. Webrat::SeleniumSession rocks!
Vidéo Selenium User group (fev 2008)
http://www.youtube.com/watch?v=EDb8yOM3Vpw
« Fermes » selenium de google:
50 équipes & 51 000 tests
Phillipe Hanrigou:
gem install selenium-client
Voir les /examples/ruby de
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
29
31. La newsletter de lecool
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
31
32. Fonctionnalité: Programmation d'une journée de la newsletter
Afin de gagner du temps dans la programmation de la
Newsletter
En tant qu'éditeur de lecool, je souhaite
pouvoir changer l'ordre des événements par glisser-déposer
Scénario:
Etant donné que je suis logged in en tant qu'administrateur
Lorsque j'édite la newsletter quot;Barcelona Selected * 256quot;
Et que je clique sur l'événement quot;Los buenos muñecos viven
para siemprequot; pour le déposer sur l'événement quot;La Leyenda de
Los Planetasquot;
Alors l'évenement quot;Los buenos muñecos viven para siemprequot;
devrait être en position 2
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
32
33. # Etant donné que je suis logged in en tant qu'administrateur
Given /que je suis logged in en tant qu'administrateur/ do
user = User.find_by_nickname(...)
visits quot;/admin/loginquot;
fills_in(quot;Emailquot;, :with => quot;jm@lecool.comquot;)
fills_in(quot;Passwordquot;, :with => quot;12345678quot;)
clicks_button(quot;Sign inquot;)
end
Log:
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
33
34. # Lorsque j'édite la newsletter quot;Barcelona Selected * 256quot;
When /^j'édite la newsletter quot;(.*)quot;$/ do |name|
@newsletter = News le t te .find_by_title(name)
r
visits
quot;/admin/newsletters/#{@newsletter.id}/edit_newsletterquot;
end
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
34
35. # Et que je clique sur l'évenement quot;Los buenos muñecos viven para
siemprequot; pour le déposer sur l'évenement quot;La Leyenda de Los Planetasquot;
When /^que je clique sur l'évenement quot;(.*)quot; pour le
déposer sur l'évenement quot;(.*)quot;/ do |from_event_name,
to_event_name|
drag_and_drop_to_object xpath_event(from_event_name),
xpath_event(to_event_name)
wait_for_ajax
end
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
35
36. #Alors l'évenement quot;Los buenos muñecos viven para siemprequot;
devrait être en position 2
Then /^l'évenement quot;(.*)quot; devrait être en position
(d+)/ do |event_name, position|
Event.find_by_name(event_name).position_in_newsletter.
should == position.to_i
end
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
36
37. Fonctionnalité: Google map
Afin de pouvoir trouver plus facilement le lieu de l'événement
En tant que lecteur de lecool, je souhaite
pouvoir visualiser une google map
Scénario: Voir la carte d'un événement
Etant donné que je suis dans la page de quot;/cities/barcelona/quot;
Lorsque je clique sur quot;VIEW MAPquot; de l'événement quot;Lube
Magazinequot;
Et que je clique sur l'icône de l'événement
Alors je devrais voir le texte quot;Barcelonaquot;
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
37
38. # Etant donné que je suis dans la page de quot;/cities/barcelonaquot;
Given /^que je suis dans la page de quot;(.*)quot;$/ do |url|
visits url
end
CENSURE!
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
38
39. Lorsque je clique sur quot;VIEW MAPquot; de l'événement quot;Lube
Magazinequot;
When /^je clique sur
quot;VIEW MAPquot; de l'évenementquot;(.*)quot;
|event_name|
event =
Event.find_by_name(event_name)
clicks
quot;//a[@id=view_map-#{event_id}']quot;
wait_for_ajax
end
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
39
40. # Et que je clique sur l'icône de l'événement
When /^que je clique sur l'icône de l'évenement$/ do
clicks quot;mtgt_unnamed_0quot; # google map icon
end
40
41. Selenium IDE à la rescousse
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
41
42. Ouvre l'éditeur / Debugging
Paris On Rail 2008 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
42