دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Steve Freeman. Nat Pryce
سری:
ISBN (شابک) : 9780321503626
ناشر: Addison-Wesley
سال نشر: 2009
تعداد صفحات: 385
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 5 مگابایت
در صورت تبدیل فایل کتاب Growing Object-Oriented Software, Guided by Tests به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب در حال رشد نرم افزار شی گرا ، با هدایت تست ها نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
توسعه تست محور (TDD) در حال حاضر یک تکنیک شناخته شده برای ارائه سریعتر نرم افزار بهتر است. TDD بر اساس یک ایده ساده است: قبل از نوشتن خود کد، تست هایی برای کد خود بنویسید. با این حال، این ایده "ساده" به مهارت و قضاوت نیاز دارد تا خوب انجام شود. اکنون یک راهنمای عملی برای TDD وجود دارد که شما را فراتر از مفاهیم اولیه می برد. با تکیه بر یک دهه تجربه در ساخت سیستمهای دنیای واقعی، دو پیشگام TDD نشان میدهند که چگونه به آزمایشها اجازه دهید توسعه شما را هدایت کنند و نرمافزاری منسجم، قابل اعتماد و قابل نگهداری را «رشد» کنند.
Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this "simple" idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and “grow” software that is coherent, reliable, and maintainable.
Growing Object-Oriented Software, Guided by Tests......Page 1
Contents......Page 9
Foreword......Page 15
Preface......Page 17
Acknowledgments......Page 21
Part I: Introduction......Page 25
Software Development as a Learning Process......Page 27
Feedback Is the Fundamental Tool......Page 28
Practices That Support Change......Page 29
Test-Driven Development in a Nutshell......Page 30
The Bigger Picture......Page 31
Testing End-to-End......Page 32
Levels of Testing......Page 33
External and Internal Quality......Page 34
Values and Objects......Page 37
Follow the Messages......Page 38
But Sometimes Ask......Page 41
Unit-Testing the Collaborating Objects......Page 42
Support for TDD with Mock Objects......Page 43
A Minimal Introduction to JUnit 4......Page 45
Hamcrest Matchers and assertThat()......Page 48
jMock2: Mock Objects......Page 49
Part II: The Process of Test-Driven Development......Page 53
Introduction......Page 55
First, Test a Walking Skeleton......Page 56
Deciding the Shape of the Walking Skeleton......Page 57
Build Sources of Feedback......Page 59
Expose Uncertainty Early......Page 60
Start Each Feature with an Acceptance Test......Page 63
Separate Tests That Measure Progress from Those That Catch Regressions......Page 64
Start Testing with the Simplest Success Case......Page 65
Watch the Test Fail......Page 66
Unit-Test Behavior, Not Methods......Page 67
Listen to the Tests......Page 68
Tuning the Cycle......Page 69
Designing for Maintainability......Page 71
Internals vs. Peers......Page 74
No And\'s, Or\'s, or But\'s......Page 75
Object Peer Stereotypes......Page 76
Composite Simpler Than the Sum of Its Parts......Page 77
Context Independence......Page 78
Hiding the Right Information......Page 79
An Opinionated View......Page 80
How Writing a Test First Helps the Design......Page 81
Communication over Classification......Page 82
Value Types......Page 83
Where Do Objects Come From?......Page 84
Refactor Interfaces Too......Page 87
Compose Objects to Describe System Behavior......Page 88
Building Up to Higher-Level Programming......Page 89
And What about Classes?......Page 91
Only Mock Types That You Own......Page 93
Mock Application Objects in Integration Tests......Page 95
Part III: A Worked Example......Page 97
To Begin at the Beginning......Page 99
Communicating with an Auction......Page 102
Getting There Safely......Page 103
This Isn\'t Real......Page 105
Get the Skeleton out of the Closet......Page 107
Our Very First Test......Page 108
Some Initial Choices......Page 110
Building the Test Rig......Page 113
Failing and Passing the Test......Page 119
The Necessary Minimum......Page 126
An Introduction to the Market......Page 129
A Test for Bidding......Page 130
The AuctionMessageTranslator......Page 136
Unpacking a Price Message......Page 142
Finish the Job......Page 145
Introducing AuctionSniper......Page 147
Sending a Bid......Page 150
Tidying Up the Implementation......Page 155
Defer Decisions......Page 160
Emergent Design......Page 161
First, a Failing Test......Page 163
Who Knows about Bidders?......Page 164
The Sniper Has More to Say......Page 167
The Sniper Acquires Some State......Page 168
The Sniper Wins......Page 170
Making Steady Progress......Page 172
A More Realistic Implementation......Page 173
Displaying Price Details......Page 176
Simplifying Sniper Events......Page 183
Follow Through......Page 188
Final Polish......Page 192
Observations......Page 195
Testing for Multiple Items......Page 199
Adding Items through the User Interface......Page 207
Observations......Page 213
Finding a Role......Page 215
Extracting the Chat......Page 216
Extracting the Connection......Page 219
Extracting the SnipersTableModel......Page 221
Observations......Page 225
Stop When We\'ve Had Enough......Page 229
Observations......Page 236
What If It Doesn\'t Work?......Page 239
Detecting the Failure......Page 241
Displaying the Failure......Page 242
Disconnecting the Sniper......Page 243
Recording the Failure......Page 245
Observations......Page 249
Part IV: Sustainable Test-Driven Development......Page 251
Introduction......Page 253
I Need to Mock an Object I Can\'t Replace (without Magic)......Page 254
Logging Is a Feature......Page 257
Mocking Concrete Classes......Page 259
Don\'t Mock Values......Page 261
Bloated Constructor......Page 262
Confused Object......Page 264
Too Many Dependencies......Page 265
Too Many Expectations......Page 266
What the Tests Will Tell Us (If We\'re Listening)......Page 268
Introduction......Page 271
Test Names Describe Features......Page 272
Canonical Test Structure......Page 275
Streamline the Test Code......Page 276
Assertions and Expectations......Page 278
Literals and Variables......Page 279
Introduction......Page 281
Test Data Builders......Page 282
Creating Similar Objects......Page 283
Emphasizing the Domain Model with Factory Methods......Page 285
Removing Duplication at the Point of Use......Page 286
Communication First......Page 288
Design to Fail......Page 291
Highlight Detail with Matchers......Page 292
Self-Describing Value......Page 293
Tracer Object......Page 294
Diagnostics Are a First-Class Feature......Page 295
Introduction......Page 297
Test for Information, Not Representation......Page 298
Precise Assertions......Page 299
Precise Expectations......Page 301
\"Guinea Pig\" Objects......Page 308
Part V: Advanced Topics......Page 311
Introduction......Page 313
Isolate Tests That Affect Persistent State......Page 314
Make Tests Transaction Boundaries Explicit......Page 316
Testing an Object That Performs Persistence Operations......Page 318
Testing That Objects Can Be Persisted......Page 321
But Database Tests Are S-l-o-w!......Page 324
Introduction......Page 325
Separating Functionality and Concurrency Policy......Page 326
Unit-Testing Synchronization......Page 330
Stress-Testing Passive Objects......Page 335
Synchronizing the Test Thread with Background Threads......Page 336
The Limitations of Unit Stress Tests......Page 337
Introduction......Page 339
Sampling or Listening......Page 340
Two Implementations......Page 342
Runaway Tests......Page 346
Lost Updates......Page 347
Testing That an Action Has No Effect......Page 349
Externalize Event Sources......Page 350
A......Page 373
C......Page 374
E......Page 375
I......Page 376
L......Page 377
N......Page 378
R......Page 379
S......Page 380
T......Page 381
X......Page 382
Afterword: A Brief History of Mock Objects......Page 353
Appendix A: jMock2 Cheat Sheet......Page 359
Appendix B: Writing a Hamcrest Matcher......Page 367
Bibliography......Page 371
About the Authors......Page 23