• Python测试驱动开发
21年品牌 40万+商家 超1.5亿件商品

Python测试驱动开发

全新正版 极速发货

45.58 5.1折 89 全新

库存3件

广东东莞
认证卖家担保交易快速发货售后保障

作者(美)珀西瓦尔(Harry J.W.Percival) 著 著

出版社东南大学出版社

ISBN9787564159153

出版时间2015-09

装帧平装

开本16开

定价89元

货号1201198160

上书时间2024-11-24

休闲图书吧

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
Harry J.W.Percival,在PyhonAnywhere LLP工作,并带着全部激情和热忱在全球的演讲、培训和会议中传播测试驱动开发的福音。他持有利物浦大学的计算机科学硕士学位以及剑桥大学的哲学硕士学位。

目录
Prerequisites and Assumptions 
Companion Video 
Acknowledgments 
Part I.The Basics of TDD and Django 
1.Getting Django Set Up Using a Functional Test 
Obey the Testing Goat! Do Nothing Until You Have a Test 
Getting Django Up and Running 
Starting a Git Repository 
2.Extending Our Functional Test Using the unittest Module 
Using a Functional Test to Scope Out a Minimum Viable App 
The Python Standard Librarys unittest Module 
Implicit waits 
Commit 
3.Testing a Simple Home Page with Unit Tests 
Our First Django App, and Our First Unit Test 
Unit Tests, and How They Differ from Functional Tests 
Unit Testing in Django 
Djangos MVC, URLs, and View Functions 
At Last! We Actually Write Some Application Code! 
urls.py 
Unit Testing a View 
The Unit—Test/Code Cycle 
4.What Are We Doing with All These Tests? 
Programming Is like Pulling a Bucket of Water up from a Well 
Using Selenium to Test User Interactions 
The "Dont Test Constants" Rule, and Templates to the Rescue 
Refactoring to Use a Template 
On Refactoring 
A Little More of Our Front Page 
Recap: The TDD Process 
5.Saving User Input 
Wiring Up Our Form to Send a POST Request 
Processing a POST Request on the Server 
Passing Python Variables to Be Rendered in the Template 
Three Strikes and Refactor 
The Django ORM and Our First Model 
Our First Database Migration 
The Test Gets Surprisingly Far 
A New Field Means a New Migration 
Saving the POST to the Database 
Redirect After a POST 
Better Unit Testing Practice: Each Test Should Test One Thing 
Rendering Items in the Template 
Creating Our Production Database with migrate 
6.Getting to the Minimum Viable Site 
Ensuring Test Isolation in Functional Tests 
Running lust the Unit Tests 
Small Design When Necessary 
YAGNI! 
REST 
Implementing the New Design Using TDD 
Iterating Towards the New Design 
Testing Views, Templates, and URLs Together with the Django Test Client 
A New Test Class 
A New URL 
A New View Function 
A Separate Template for Viewing Lists 
Another URL and View for Adding List Items 
A Test Class for New List Creation 
A URL and View for New List Creation 
Removing Now—Redundant Code and Tests 
Pointing Our Forms at the New URL 
Adjusting Our Models 
A Foreign Key Relationship 
Adjusting the Rest of the World to Our New Models 
Each List Should Have Its Own URL 
Capturing Parameters from URLs 
Adjusting new_list to the New World 
One More View to Handle Adding Items to an Existing List 
Beware of Greedy Regular Expressions! 
The Last New URL 
The Last New View 
But How to Use That URL in the Form? 
A Final Refactor Using URL includes 
Part Ⅱ.Web Development Sine Qua Nons 
7.Prettification: Layout and Styling, and What to Test About It 
What to Functionally Test About Layout and Style 
Pretti Fication: Using a CSS Framework 
Django Template Inheritance 
Integrating Bootstrap 
Rows and Columns 
Static Files in Django 
Switching to Static Live Server Test Case 
Using Bootstrap Components to Improve the Look of the Site 
Jumbotron! 
Large Inputs 
Table Styling 
Using Our Own CSS 
What We Glossed Over: collectstatic and Other Static Directories 
A Few Things That Didnt Make It 
8.Testing Deployment Using a Staging Site 
TDD and the Danger Areas of Deployment 
As Always, Start with a Test 
Getting a Domain Name 
Manually Provisioning a Server to Host Our Site 
Choosing Where to Host Our Site 
Spinning Up a Server 
User Accounts, SSH, and Privileges 
Installing Nginx 
Configuring Domains for Staging and Live 
Using the FT to Confirm the Domain Works and Nginx Is Running 
Deploying Our Code Manually 
Adjusting the Database Location 
Creating a Virtualenv 
Simple Nginx Configuration 
Creating the Database with migrate 
Getting to a Production—Ready Deployment 
Switching to Gunicorn 
Getting Nginx to Serve Static Files 
Switching to Using Unix Sockets 
Switching DEBUG to False and Setting ALLOWED_HOSTS 
Using Upstart to Make Sure Gunicorn Starts on Boot 
Saving Our Changes: Adding Gunicorn to Our requirements.txt 
Automating 
"Saving Your Progress" 
9.Automating Deployment with Fabric 
Breakdown of a Fabric Script for Our Deployment 
Trying It Out 
Deploying to Live 
Nginx and Gunicorn Config Using sed 
Git Tag the Release 
Further Reading 
10.Input Validation and Test Organisation 
Validation FT: Preventing Blank Items 
Skipping a Test 
Splitting Functional Tests out into Many Files 
Running a Single Test File 
Fleshing Out the FT 
Using Model—Layer Validation 
Refactoring Unit Tests into Several Files 
Unit Testing Model Validation and the self assert Raises Context Manager 
A Django Quirk: Model Save Doesnt Run Validation 
Surfacing Model Validation Errors in the View 
Checking Invalid Input Isnt Saved to the Database 
Django Pattern: Processing POST Requests in the Same View as Renders the Form 
Refactor: Transferring the new_item Functionality into view_list 
Enforang Model Validation in view_list 
Refactor: Removing Hardcoded URLs 
The {% url %} Template Tag 
Using get_absolute_url for Redirects 
11.A Simple Form 
Moving Validation Logic into a Form 
Exploring the Forms API with a Unit Test 
Switching to a Django Model Form 
Testing and Customising Form Validation 
Using the Form in Our Views 
Using the Form in a View with a GET Request 
A Big Find and Replace 
Using the Form in a View That Takes POST Requests 
Adapting the Unit Tests for the new_list View 
Using the Form in the.View 
Using the Form to Display Errors in the Template 
Using the Form in the Other View 
A Helper Method for Several Short Tests 
Using the Forms Own Save Method 
12.More Advanced Forms 
Another FT for Duplicate Items 
Preventing Duplicates at the Model Layer 
A Little Digression on Queryset Ordering and String Representations 
Rewriting the Old Model Test 
Some Integrity Errors Do Show Up on Save 
Experimenting with Duplicate Item Validation at the Views Layer 
A More Complex Form to Handle Uniqueness Validation 
Using the Existing List Item Form in the List View 
13.Dipping Our Toes, Very Tentatively, into Java Script 
Starting with an FT 
Setting Up a Basic Java Script Test Runner 
Usingi Query and the Fixtures Div 
Building a Java Script Unit Test for Our Desired Functionality 
Javascript Testing in the TDD Cycle 
Columbo Says: Onload Boilerplate and Namespacing 
A Few Things That Didnt Make It 
14.Deploying Our New Code 
Staging Deploy 
Live Deploy 
What to Do If You See a Database Error 
Wrap—Up: git tag the New Release 
…… 
Part Ⅲ.More Advanced Topics 
Index

内容摘要
本书通过从头开发一个真实的Web应用,介绍了Python测试驱动开发的优势。读者将学会如何在构建应用的每个部分之前编写和运行测试,然后用最少的代码通过这些测试。

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP