Synopses & Reviews
We all know feedback is good. Why not get it instantly? Continuous Testing with Ruby shows you how to use a combination of tests, tools, and techniques to immediately detect problems in code. This book will help you create a personalized development environment that instantly validates your decisions as you make changes to your code. This rapid feedback allows you to focus on the problem at hand, rather than constantly re-checking prior work. If you want to spend more of your time writing valuable software, and less time slogging through code line-by-line in a debugger, Continuous Testing with Ruby can help you!
Continuous Testing (CT) is a developer practice that shortens the feedback loops established by test-driven development and continuous integration. Building on techniques used by Agile software development practitioners, Continuous Testing with Ruby shows you how to get instant feedback about both the quality of your code, and the quality of your tests.
Automated testing is an increasingly common practice in the software development industry. However, many companies struggle to gain all the benefits of automated testing, due to poorly written or incomplete tests. Continuous Testing with Ruby shows how these companies can get the most value out of their existing tests. It also helps you improve the quality of the new tests you write, by giving you instant feedback about problem areas, and creating a visceral feedback loop for test quality that you can actually feel as you work.
Just as continuous integration and test-driven development have changed the definition of software development in the last ten years, Continuous Testing is poised to become a standard practice for development teams in the next decade.
Concerned with writing software that matters and filled with tutorials and practical examples, this approach to agile software development takes cues from Test Driven Development, Domain Driven Design, and Acceptance Test Driven Planning.
You'll get started right away with RSpec 2 and Cucumber by developing a simple game, using Cucumber to express high-level requirements in language your customer understands, and RSpec to express more granular requirements that focus on the behavior of individual objects in the system. You'll learn how to use test doubles (mocks and stubs) to control the environment and focus the RSpec examples on one object at a time, and how to customize RSpec to "speak" in the language of your domain.
You'll develop Rails 3 applications and use companion tools such as Webrat and Selenium to express requirements for web applications both in memory and in the browser. And you'll learn to specify Rails views, controllers, and models, each in complete isolation from the other.
Whether you're developing applications, frameworks, or the libraries that power them, The RSpec Book will help you write better code, better tests, and deliver better software to happier users.
ASP.NET MVC 2.0 is C# on the web done right. No more fiddling around with Viewstate, IsPostBack(), and drag-and-drop coding. Microsoft has addressed the shortcomings of ASP.NET and created a framework that goes toe-to-toe with other popular web frameworks such as Ruby on Rails. Programming in C# is fun again!
This book uses a test-driven development (TDD) approach to the features of ASP.NET MVC. You'll get hands-on experience building and deploying a time-management web application from start to finish. From building your first page, to data access, to integrating with web services such as Blogger.com, Test Drive ASP.NET MVC guides you step by step. You'll come away with a complete understanding of web services and data access, and you'll learn how to test each component so that your code is bug-free and maintainable from the start. You'll see how to handle security, logging, and error handling. Then, you'll protect your site with ASP.NET MVC's advanced security features.
Software isn't useful until it's deployed into production. We'll cover automated deployment using MSBuild, a build tool product that can help you get your site online, repeatably and reliably. Throughout, you'll work with open source projects that complement ASP.NET MVC, including NHibernate, MVCContrib, and Castle Windsor Container. These tools speed up developing database components, architecture layers, and testing your code.
As you build and deploy your application, you'll not only learn the framework itself, but also gain valuable experience with the test-first methodology, driving your application development through small and measurable incremental improvements.
About the Author
David Chelimsky is the lead developer/maintainer of RSpec, and has contributed to several other open source projects including Cucumber, Aruba, and Rails. He has been developing software for over a decade, including three years training and mentoring agile teams at Object Mentor. He is currently a Senior Software Engineer at DRW Trading Group in Chicago, IL. In his spare time, David likes to play guitar, travel, and speak something resembling Portuguese.
Dave Astels is the Director of Technology at ChannelFireball.com and has been involved with software and computing for over 25 years, recently having spent several years working exclusively with Ruby and Rails. Dave wrote the article that prompted Steven Baker to start the RSpec project.
Bryan Helmkamp maintains Webrat, a Ruby library to implement acceptance tests for web applications in an expressive and maintainable way, and is an active participant in the New York City Ruby community. Bryan is the CTO of Efficiency 2.0, a startup that helps people understand and reduce their energy use.
Dan North writes software and coaches teams and organizations in agile and lean methods. He believes that most problems that teams face are about communication and understanding, which is why he puts so much emphasis on "getting the words right." In 2003-4 this led him to develop the ideas that would become Behaviour-Driven Development. He is delighted by the community that has grown up around RSpec and Cucumber, and especially the enthusiasm and dedication of their core contributors. Dan is currently a Senior Software Engineer at DRW Trading Group in London, where he gets to actually code again!
Zach Dennis is a co-founder and fellow human at Mutually Human Software, an expert custom software strategy and design consultancy in Grand Rapids, Michigan. He has been enjoying Ruby for nearly eight years and has contributed to several projects such as Ruby's standard library documentation, Ruby on Rails, and RSpec. In his spare time, Zach loves spending time with his family, continuously learning, playing music, and running continuousthinking.com.
Aslak Hellesoy is a Senior Software Engineer at DRW Trading Group in London. While contributing to this book he was the Chief Scientist of BEKK Consulting in Oslo. In 2003, after seven years of professional Java programming, he fell in love with Ruby. He has contributed to dozens of open source projects and is the founder of the Cucumber project. Aslak likes to cook, ski, and travel.