Book Image

Microsoft Dynamics 365 Extensions Cookbook

Book Image

Microsoft Dynamics 365 Extensions Cookbook

Overview of this book

Microsoft Dynamics 365 is a powerful tool. It has many unique features that empower organisations to bridge common business challenges and technology pitfalls that would usually hinder the adoption of a CRM solution. This book sets out to enable you to harness the power of Dynamics 365 and cater to your unique circumstances. We start this book with a no-code configuration chapter and explain the schema, fields, and forms modeling techniques. We then move on to server-side and client-side custom code extensions. Next, you will see how best to integrate Dynamics 365 in a DevOps pipeline to package and deploy your extensions to the various SDLC environments. This book also covers modern libraries and integration patterns that can be used with Dynamics 365 (Angular, 3 tiers, and many others). Finally, we end by highlighting some of the powerful extensions available. Throughout we explain a range of design patterns and techniques that can be used to enhance your code quality; the aim is that you will learn to write enterprise-scale quality code.
Table of Contents (19 chapters)
Title Page
Credits
Foreword
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Unit testing your plugin with an in-memory context


When you are developing a plugin, you would often want to test your customization. If you have an on-premise instance, debugging your code is more or less straight forward. If you have an online instance, you can leverage the new plugin log capabilities or replay your plugin using the plugin registration tool, as described in Profiling your plugin later in this chapter.

If you try to integrate test your plugin with a live connection to your Dynamics 365 instance, then you will be penalized with a significant execution time that might quickly eat up the best practice 30 seconds timeframe to run all your unit tests. The best option is to rely on in-memory processing only.

In this recipe, we will unit test our plugin end-to-end as if it was triggered from Dynamics 365. The plugin will not connect to a live Dynamics 365 instance; instead, we will fake an in-memory repository. The unit test will focus on state verification as opposed to behavior...