售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Title Page
Dedication
About Packt
Why subscribe?
Packt.com
Foreword
Contributors
About the author
About the reviewers
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
Section 1: Automated Testing - A General Overview
Introduction to Automated Testing
Why automated testing?
Why not?
Why yes?
Drive testing upstream and save costs
Dynamics 365 Business Central platform enables test automation
Relying on customers to do the testing isn't a great idea
Having a hard time finding people – start automating your tests
Test automation will free up time for everyday business
Keep on handling different projects because of test automation
Automated tests are code too
Some more arguments
Nobody loves testing
Reduced risks and higher satisfaction
Once the learning curve is over, it will often be quicker than manual testing
Shorter update cycles
Test automation is required
Silver bullet?
When to use automated testing
After go-live bug fixing
Buggy code
Frequently modified code
Business-critical code being changed
Refactoring of existing code
New feature development
Microsoft updates
What is automated testing?
Summary
Section 2: Automated Testing in Microsoft Dynamics 365 Business Central
The Testability Framework
The five pillars of the testability framework
Pillar 1 – Test codeunits and test functions
Test codeunits
Test functions
Pillar 2 – asserterror
Pillar 3 – handler functions
Pillar 4 – Test runner and test isolation
Test runner
Test isolation
Pillar 5 – Test pages
Summary
The Test Tool and Standard Tests
Test Tool
Standard tests
Categorization by FEATURE
Standard libraries
Summary
Section 3: Designing and Building Automated Tests for Microsoft Dynamics 365 Business Central
Test Design
No design, no test
Understanding test case design patterns
Acceptance Test-Driven Development
A note on test verification
Understanding test data setup design patterns
Test fixture, data agnostics, and prebuilt fixture
Test fixture and test isolation
Shared fixture implementation
Fresh fixture implementation
Using customer wish as test design
Summary
From Customer Wish to Test Automation - The Basics
From customer wish to test automation
Data model
Business logic
LookupValue extension
Implementing a defined customer wish
Test example 1 – a first headless test
Customer wish
FEATURE
SCENARIO
GIVEN
WHEN
THEN
Complete scenario
Application code
Test code
Steps to take
Create a test codeunit
Embed the customer wish into a test function
Write your test story
Construct the real code
CreateLookupValueCode
CreateCustomer
SetLookupValueOnCustomer
VerifyLookupValueOnCustomer
Test execution
Test the test
Test the data being created
Adjust the test so the verification errs
Test example 2 – a first positive-negative test
Test code
Steps to take
Create a test codeunit
Embed the customer wish into a test function
Write your test story
Construct the real code
VerifyNonExistingLookupValueError
Test execution
Test the test
Adjust the test so the verification errs
Removing asserterror
Test example 3 – a first UI test
Customer wish
Application code
Test code
Create a test codeunit
Embed the customer wish into a test function
Write your test story
Construct the real code
CreateCustomerCard
SetLookupValueOnCustomerCard
Test execution
Test the test
Adjust the test so the verification errs
Headless versus UI
Summary
From Customer Wish to Test Automation - Next Level
Sales documents, customer template, and warehouse shipment
Test example 4 – how to set up a shared fixture
Customer wish
Application code
Test Code
Create a test codeunit
Embed the customer wish into a test function
Write your test story
Construct the real code
Test execution
Test the test
Test example 5 – how to parametrize tests
Customer wish
Application code
Test code
Create, embed, and write
Construct the real code
Test execution
Test the test
A missing scenario?
Test example 6 – how to hand over data to UI handlers
Customer wish
Test code
Create, embed, and write
Construct the real code
Enqueue
Dequeue
Test execution
Test the test
Summary
From Customer Wish to Test Automation - And Some More
Test example 7 – how to test a report
Customer wish
Application code
Test code
Create, embed, and write
Construct the real code
Test execution
Test the test
Adjust the test so the verification errs
Test example 8 – how to construct an extensive scenario
Customer wish
Application code
Test code
Create, embed, and write
Construct the real code
Initialize
VerifyLookupValueOnWarehouseShipmentLine
CreateWarehouseShipmentFromSalesOrder
Test execution
Test the test
Adjust the test so the verification errs
Refactoring
Summary
Section 4: Integrating Automated Tests in Your Daily Development Practice
How to Integrate Test Automation in Daily Development Practice
Casting the customer wish into ATDD scenarios
Taking small steps
Making the test tool your friend
Test coverage map
Extending the test tool
Integrating with daily build
Maintaining your test code
Extensions and tests
Summary
Getting Business Central Standard Tests Working on Your Code
Why use the standard tests?
Executing standard test
What does this tell us?
Fixing failing standard tests
Attacking the error
Fixing the error
Running the failing tests again
Viewing the call stack from the test tool
It's all about data
Making your code testable
Applying the Handled pattern
Is it all really about data?
Summary
Test-Driven Development
TDD, a short description
TDD, red-green-refactor
TDD and our test examples
Summary
Setting Up VS Code and Using the GitHub Project
VS Code and AL development
VS Code project
launch.json
app.json
The GitHub repository
Structure of the GitHub repository
Chapter 2
ATDD Scenarios
LookupValue Extension (app only)
Chapter 5 (LookupValue Extension)
Chapter 6 (LookupValue Extension)
Chapter 7 (LookupValue Extension)
Chapter 7 (LookupValue Extension) - refactored and completed
Chapter 9 (LookupValue Extension)
LookupValue Test Extension (test only)
Notes on the AL code
VS Code versus C/SIDE
Prefix or suffix
Word wrap
Other Books You May Enjoy
Leave a review - let other readers know what you think
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜