I wrote this book for the following audiences: People who have programming skills and want to improve the quality of their code. People who have heard about unit testing but are still not clear what it is or how it works. People who love CakePHP and want to take advantage of what it offers. People who have spent a lot of time searching for bugs after a 3rd party upgrade. The examples in this book use CakePHP, but the first half of the book is not framework or language specific. I hope unit testing and the ideas presented in this book will help you as much as they’ve helped me.
Model View Controller (MVC) is becoming the definitive architecture of website development frameworks due to the stability, extensibility and predictability it lends to development. It is not just the primary separation of database, business logic and interface components, but includes a wide range of considerations for building high-performing, scalable and secure applications. Deciding which MVC framework best suits the project you are about to begin is one of the biggest challenges you'll face as a developer. If you are part of a team, this decision has probably already been made for you; but in any event, you'll need to know how (and why) the framework authors made it work the way it does. Pro PHP MVC looks at the building blocks that make any good MVC framework, and how they apply to PHP. It exposes all considerations that many developers take for granted when using a popular framework, and teaches you how to make the framework your own. Over the course of reading this book, you will learn the theoretical implications of the choices you would make when writing your own MVC framework, and how to put the pieces together in a cohesive package. We take a look at the highly modular Zend Framework—how to use its collection of loosely coupled classes to build a unified system. We also look at CakePHP, learning from its automated build system (Bakery) and highly intuitive approach to rapid development. This book will lay bare all the secret parts of MVC for you.
Accelerate your development of PHP applications using the popular CakePHP web application development framework and unit testing. This short book shows you how to carry out test-driven development with fixtures, model tests, controller tests, mocks, and test suites. Learn CakePHP contains all you need to get started with the CakePHP framework to build faster, better PHP-based web applications. You'll learn about unit testing and how to implement it in CakePHP. This approach to coding leads to better code, better applications, and better programming habits. With this knowledge your PHP skills will go from strength to strength allowing you to write more and improved code. What you'll learn What is unit testing and CakePHP and how to put the two together What is clean coding What is TDD and the development cycle using this approach How to work with fixtures, model tests, text callbacks, controller tests, and more How to do mocks, test suites, testing from the command line and more How to work with code coverage, fixtures data, and private methods Who this book is for This book is for experienced PHP programmers and web developers who have little or no experience using CakePHP and/or unit testing.
The first detailed, unbiased comparison of the three leading PHP frameworks Web developers have been eager for an impartial comparison of leading PHP frameworks so they can make educated decisions about the most effective tool for their needs. This guide uses Symfony, CakePHP, and Zend Framework to solve key problems, providing source code examples and comparisons for each. It explains the approach and reviews the similarities and differences in the three frameworks, providing reliable information on which to base your decisions. Symfony, CakePHP, and Zend Framework are considered the leading PHP frameworks; developers need an unbiased comparison to choose which one works best for their individual situations This guide uses each framework to solve the same problems, illustrating the solutions with source code examples and working applications Covers wide range of topics, from installation and configuration to most advanced features like AJAX, web services and automated testing. Includes an appendix of new PHP frameworks, including CodeIgniter, Lithium, and Agavi Bestselling PHP author Elizabeth Naramore serves as technical editor Comparison of PHP Web Frameworks provides the impartial, side-by-side comparison that developers have been looking for.
Summary The Art of Unit Testing, Second Edition guides you step by step from writing your first simple tests to developing robust test sets that are maintainable, readable, and trustworthy. You'll master the foundational ideas and quickly move to high-value subjects like mocks, stubs, and isolation, including frameworks such as Moq, FakeItEasy, and Typemock Isolator. You'll explore test patterns and organization, working with legacy code, and even "untestable" code. Along the way, you'll learn about integration testing and techniques and tools for testing databases and other technologies. About this Book You know you should be unit testing, so why aren't you doing it? If you're new to unit testing, if you find unit testing tedious, or if you're just not getting enough payoff for the effort you put into it, keep reading. The Art of Unit Testing, Second Edition guides you step by step from writing your first simple unit tests to building complete test sets that are maintainable, readable, and trustworthy. You'll move quickly to more complicated subjects like mocks and stubs, while learning to use isolation (mocking) frameworks like Moq, FakeItEasy, and Typemock Isolator. You'll explore test patterns and organization, refactor code applications, and learn how to test "untestable" code. Along the way, you'll learn about integration testing and techniques for testing with databases. The examples in the book use C#, but will benefit anyone using a statically typed language such as Java or C++. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. What's Inside Create readable, maintainable, trustworthy tests Fakes, stubs, mock objects, and isolation (mocking) frameworks Simple dependency injection techniques Refactoring legacy code About the Author Roy Osherove has been coding for over 15 years, and he consults and trains teams worldwide on the gentle art of unit testing and test-driven development. His blog is at ArtOfUnitTesting.com. Table of Contents PART 1 GETTING STARTED The basics of unit testing A first unit test PART 2 CORE TECHNIQUES Using stubs to break dependencies Interaction testing using mock objects Isolation (mocking) frameworks Digging deeper into isolation frameworks PART 3 THE TEST CODE Test hierarchies and organization The pillars of good unit tests PART 4 DESIGN AND PROCESS Integrating unit testing into the organization Working with legacy code Design and testability
"The recipes in this book give you instant results and will help you develop web applications, leveraging the CakePHP features that allow you to build robust and complex applications"--p. [1].
If you've been using PHP for sometime now and would like to start using a web framework, you'll want to try CakePHP, which is an open source rapid development web framework built on PHP. PHP experts Kai Chan and John Omokore guide you through a variety of practical CakePHP applications. You will work on projects such as a video gallery, unit testing application, an e–commerce app, a blog site, and much more. Practical CakePHP Projects covers the key architectural concepts as well as including mini projects that you can use to enhance your own applications. A friendly introduction for any web programmer looking to choose a PHP framework Real–world projects based on current and future trends Practical CakePHP techniques that you can use right away
If you are a CakePHP developer looking to ease the burden of development, then this book is for you. As a headfirst dive into the framework, this collection of recipes will help you get the most out of CakePHP, and get your applications baked in no time. Even if you're not familiar with the framework, we'll take you from basic CRUD building to useful solutions that will aid in getting the job done quickly and efficiently.
Automated testing is a cornerstone of agile development. An effective testing strategy will deliver new functionality more aggressively, accelerate user feedback, and improve quality. However, for many developers, creating effective automated tests is a unique and unfamiliar challenge. xUnit Test Patterns is the definitive guide to writing automated tests using xUnit, the most popular unit testing framework in use today. Agile coach and test automation expert Gerard Meszaros describes 68 proven patterns for making tests easier to write, understand, and maintain. He then shows you how to make them more robust and repeatable--and far more cost-effective. Loaded with information, this book feels like three books in one. The first part is a detailed tutorial on test automation that covers everything from test strategy to in-depth test coding. The second part, a catalog of 18 frequently encountered "test smells," provides trouble-shooting guidelines to help you determine the root cause of problems and the most applicable patterns. The third part contains detailed descriptions of each pattern, including refactoring instructions illustrated by extensive code samples in multiple programming languages.
Quite simply, test-driven development is meant to eliminate fear in application development. While some fear is healthy (often viewed as a conscience that tells programmers to "be careful!"), the author believes that byproducts of fear include tentative, grumpy, and uncommunicative programmers who are unable to absorb constructive criticism. When programming teams buy into TDD, they immediately see positive results. They eliminate the fear involved in their jobs, and are better equipped to tackle the difficult challenges that face them. TDD eliminates tentative traits, it teaches programmers to communicate, and it encourages team members to seek out criticism However, even the author admits that grumpiness must be worked out individually! In short, the premise behind TDD is that code should be continually tested and refactored. Kent Beck teaches programmers by example, so they can painlessly and dramatically increase the quality of their work.