舉報

會員
C# and .NET Core Test Driven Development
Thisbookisfor.NETdeveloperswhowouldliketobuildefficientapplicationsbyimplementingprinciplesoftest-drivendevelopment.C#programmingandworkingknowledgeofVSisassumed.
目錄(257章)
倒序
- 封面
- 版權信息
- Dedication
- Packt Upsell
- Why subscribe?
- PacktPub.com
- Contributors
- About the author
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- Exploring Test-Driven Development
- Difficulty in maintaining code
- How does bad code appear?
- Tight coupling
- Code smell
- Bad or broken designs
- Naming the program elements
- Source code readability
- Poor source code documentation
- Non-tested code
- What we can do to prevent bad code
- Loose coupling
- Sound architecture and design
- Preventing and detecting code smell
- C# coding conventions
- Succinct and proper documentation
- Why test-driven development?
- Building for longevity
- The principles of test-driven development
- Origin of TDD
- TDD misconceptions
- Benefits of TDD
- Types of tests
- Unit tests
- Integration tests
- System testing
- User acceptance testing
- Principles of TDD
- Writing the tests
- Writing the code
- Running the tests
- Refactoring
- Doing TDD the wrong way
- The TDD cycle
- Summary
- Getting Started with .NET Core
- .NET Core framework
- .NET Standard
- .NET Core components
- Supported languages
- When to choose .NET Core over .NET Framework
- Cross-platform requirements
- Ease of deployment
- Scalability and performance
- Limitations of .NET Core
- Structure of a .NET Core application
- ASP.NET Core MVC project structure
- wwwroot folder
- Models Views and Controllers folders
- JSON files – bower.json appsettings.json bundleconfig.json
- Program.cs
- Startup.cs
- Tour of Microsoft's Visual Studio Code editor
- Installing .NET Core on Linux
- Installing and setting up Visual Studio Code on Linux
- Exploring Visual Studio Code
- A look at the new features of C# 7
- Tuples enhancement
- Out keyword
- Ref locals and returns
- Ref locals
- Ref returns
- Local function
- Patterns matching
- Digit separator and binary literal
- Creating an ASP.NET MVC Core application
- Summary
- Writing Testable Code
- Warning signs when writing untestable code
- Tight coupling
- Monster Constructor
- Classes with more than one responsibility
- Static objects
- Law of Demeter
- Train Wreck
- The SOLID architecture principles
- Single Responsibility Principle
- Open-Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
- Setting up a DI container for ASP.NET Core MVC
- Summary
- .NET Core Unit Testing
- The attributes of a good unit test
- Readable
- Unit independence
- Repeatable
- Maintainable and runs fast
- Easy to set up non-trivial and with good coverage
- Unit testing framework ecosystem for .NET Core and C#
- .NET Core testing with MSTest
- .NET Core testing with NUnit
- xUnit.net
- How to configure xUnit.net
- xUnit.net test runners
- Test parallelism
- Unit testing consideration for ASP.NET MVC Core
- Unit testing controllers
- Unit testing razor pages
- Structuring unit tests with xUnit
- xUnit.net shared test context
- Live unit testing with Visual Studio 2017 Enterprise
- Proving unit test results with xUnit.net assertions
- The test runners available on both .NET Core and Windows
- ReSharper
- Summary
- Data-Driven Unit Tests
- The benefits of data-driven unit testing
- Tests brevity
- Inclusive testing
- xUnit.net theory attribute for creating data-driven tests
- Inline data-driven unit tests
- Property data-driven unit tests
- MemberData attribute
- ClassData attribute
- Integrating data from other sources
- SqlServerData attribute
- Custom attribute
- Summary
- Mocking Dependencies
- The benefits of mocking objects
- Fast running tests
- Dependencies isolation
- Refactoring legacy code
- Wider test coverage
- The shortcomings of mocking frameworks
- Interface explosion
- Extra complexity
- Mock explosion
- Hand-rolling mocks versus using a mocking framework
- Mocking concept
- Benefits of hand-rolling mocks
- Mocks and stubs
- Hand-rolled mock
- Mocking objects using Moq framework
- Mocking methods properties and callback
- Properties
- Matching parameters
- Events
- Callbacks
- Mock customization
- CallBase
- Mock repository
- Implementing multiple interfaces in a mock
- Verification method and property invocations with Moq
- LINQ to mocks
- Advanced Moq features
- Mocking internal types
- Summary
- Continuous Integration and Project Hosting
- Continuous integration
- CI workflow
- Single source code repository
- Build automation
- Automated tests
- Identical test and production environments
- Daily commit
- Benefits of CI
- Quick bugs detection
- Improved productivity
- Reduced risks
- Facilitating continuous delivery
- CI tools
- Microsoft Team Foundation Server
- TeamCity
- Jenkins
- Continuous delivery
- Benefits of continuous delivery
- Lower risks
- Quality software products
- Reduced costs
- GitHub online project hosting
- Project hosting
- Branching with GitHub Flow
- Pull request
- Reviewing changes and merging
- Basic Git commands
- Configuration commands
- Initializing repository commands
- Change commands
- Branching and merging commands
- Configuring GitHub WebHooks
- Consuming WebHooks
- GitHub WebHook
- Events and payloads
- Setting up your first WebHook
- TeamCity CI platform
- TeamCity concepts
- Installing TeamCity Server
- TeamCity CI workflow
- Configuring and running build
- Summary
- Creating Continuous Integration Build Processes
- Installing the Cake Bootstrapper
- Installation
- PowerShell security
- Cake Bootstrapper installation steps
- Step 1
- Step 2
- Step 3
- Writing build scripts in C#
- Task
- TaskSetup and TaskTeardown
- Configuration and preprocessor directives
- Dependencies
- Criteria
- Cake's error handling and finally block
- LoanApplication build script
- Cake Extension for Visual Studio
- Cake templates
- Task Runner Explorer
- Syntax highlighting
- Using Cake tasks to build steps
- CI with Visual Studio Team Services
- Setting up a project in VSTS
- Installing Cake into VSTS
- Adding a build task
- Summary
- Testing and Packaging the Application
- Executing xUnit.net tests with Cake
- Executing xUnit.net tests in .NET projects
- Executing xUnit.net tests in .NET Core projects
- .NET Core versioning
- Versioning principle
- Installer
- Package manager
- Docker
- Semantic Versioning
- .NET Core packages and metapackages
- Metapackage
- Microsoft.AspNetCore.All metapackage
- Packaging for NuGet distribution
- dotnet publish command
- Creating a NuGet package
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-25 22:01:09
推薦閱讀
- C++ Primer習題集(第5版)
- OpenDaylight Cookbook
- Linux C/C++服務器開發實踐
- Visual FoxPro 程序設計
- Visual Basic程序設計教程
- Elastic Stack應用寶典
- MariaDB High Performance
- Learning Data Mining with R
- ANSYS Fluent 二次開發指南
- Clojure Reactive Programming
- 好好學Java:從零基礎到項目實戰
- Couchbase Essentials
- Orchestrating Docker
- Learning Splunk Web Framework
- Hadoop大數據分析技術
- 玩轉.NET Micro Framework移植:基于STM32F10x處理器
- Python 3 Object:oriented Programming(Second Edition)
- Getting Started with Electronic Projects
- C++ Data Structures and Algorithm Design Principles
- Learning Yeoman
- 嵌入式Linux與物聯網軟件開發:C語言內核深度解析
- Getting Started with SpriteKit
- 區塊鏈技術指南
- Arduino for Secret Agents
- Hands-On Artificial Intelligence on Google Cloud Platform
- Visual Studio 2010 Best Practices
- Python:Journey from Novice to Expert
- 孩子趣味學編程之Scratch篇
- Getting Started with ownCloud
- OpenCart Theme and Module Development