Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Good integration tests are hard. There are many approaches for fully testing server and client libraries for those HTTP APIs - all with various tradeoffs and problems that come up. Some are obvious, some are a little more tricky. I'll run through some approaches and problems I've come across developing server/client HTTP APIs while developing in a highly distributed systems setup at Engine Yard. Help us caption & translate this video! http://amara.org/v/FGbW/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the video titled 'Testing HTTP APIs with Ruby' presented by Shai Rosenfeld at the MountainWest RubyConf 2013, the focus is placed on the essential nature of APIs in contemporary software development, equating the necessity of an API today to that of having a website in the late 90s. The presentation delves into various testing strategies for server-client APIs, particularly in a distributed service-oriented architecture setting. Key points discussed include: - **API Importance**: APIs are crucial for software products, particularly in the shift from monolithic applications to microservices. - **Development Roles**: The development team comprises server developers, client library developers, and external app developers, with a sample project centered on a music-labeling API that allows users to post song titles and lyrics. - **Testing Strategies**: Shai introduces multiple testing methodologies: - **Isolated Testing**: Testing server methods independently without full integration initially, ensuring that features like POST and GET work correctly. - **Mocking**: Utilizing tools such as WebMock for client-server interaction simulation, although cautioning that this may lead to a false sense of security if server changes aren't reflected in client tests. - **Sandbox Environments**: Establishing a real server as a sandbox for more accurate integration and interaction testing, despite the potential for slowed development due to setup time and unique data management challenges. - **Fake Server Testing**: Implementing in-memory servers with tools like Sinatra for streamlined testing without complex deployments, while ensuring consistent behavior with real servers. - **Mapper Approach**: Centralizing API interactions allows efficient management of testing processes across both fake and live implementations, enhancing collaboration among developers. - **Trade-offs**: Each approach has distinct trade-offs between speed, reliability, and maintenance. Clear paths and good methodologies are vital for ensuring development efficiency while addressing the complexities of API operations. Shai concludes by encouraging exploration of different approaches to API testing and sharing additional resources with attendees via social media. The overall message emphasizes the need for robust testing strategies in API development to foster reliability and smooth integration for third-party developers. This talk underlines the importance of adaptable testing frameworks that can serve diverse development contexts effectively.
Suggest modifications
Cancel