Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Microsoft Dynamics 365 Extensions Cookbook

You're reading from   Microsoft Dynamics 365 Extensions Cookbook Add functionality to existing model elements, source code and finally package and deploy using DevOps

Arrow left icon
Product type Paperback
Published in Jun 2017
Publisher Packt
ISBN-13 9781786464170
Length 462 pages
Edition 1st Edition
Languages
Tools
Concepts
Arrow right icon
Author (1):
Arrow left icon
Rami Mounla Rami Mounla
Author Profile Icon Rami Mounla
Rami Mounla
Arrow right icon
View More author details
Toc

Table of Contents (12) Chapters Close

Preface 1. No Code Extensions FREE CHAPTER 2. Client-Side Extensions 3. SDK Enterprise Capabilities 4. Server-Side Extensions 5. External Integration 6. Enhancing Your Code 7. Security 8. DevOps 9. Dynamics 365 Extensions 10. Architectural Views 11. Dynamics 365

Unit testing your plugin business logic


Another byproduct of refactoring our code is rendering it unit-testing friendly. Separating the layers, especially the data access layer and the plugin entry, means that we now have a true business logic layer that is independent from connections to other systems. We can unit test this business logic as a standalone layer.

In our unit test, we will focus on behavior verification as opposed to state verification.

This unit test will not focus on the state of the records but rather verify that the correct methods were called the expected number of times and with the right parameters. We will follow the AAA pattern (Arrange, Act, Assert).

For a state verification unit test, look at the next recipe, Unit testing your plugin with in-memory context.

We will unit test the plugin business logic from the first recipe in this chapter. We will mock the IEmailDataAccessLayer DAL to return predefined values when the GetEmails method is called. We will stub ICustomTracingService...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image