Blog Feed

Lesson 5.16: Redeploy SimpleRPG Game to New Storage Account

Our game is now dependent on our Azure Function web services. All of the local game data has been deleted, so the game no longer runs standalone, and it will not launch if it doesn't have an internet connection during startup. However, since we load and cache the game data from the web services at … Continue reading Lesson 5.16: Redeploy SimpleRPG Game to New Storage Account

Lesson 1.11: The Wrap

This chapter took us through the basics of creating a console application using the Spectre.Console.Cli library. This library removes a lot of the boilerplate code needed to parse command-line arguments and map them to operations in our code. By adopting their Command pattern, we are able to focus on our code and functionality without having … Continue reading Lesson 1.11: The Wrap

Lesson 1.10: CLI End to End Tests

Unit tests are just one type of test that we can use to validate our console application. While those are validating that command logic is working in isolation, we also need to verify that our command configuration was done correctly, that our repository is working, and that the command line works the way our users … Continue reading Lesson 1.10: CLI End to End Tests

Lesson 5.15: Retrieve Remaining Game Data from Services

Lesson 5.14 laid out the detailed description of the changes required to update ItemFactory to fetch ItemTemplate data from our game services. In this lesson, we're going to update the remaining factories to provide the same functionality. We will use the same patterns we did for ItemFactory and make use of the GameServiceClient to communicate … Continue reading Lesson 5.15: Retrieve Remaining Game Data from Services

Lesson 1.9: Unit Testing Commands

The detailed description for just one test and how to run it got longer than expected, so we are putting the remaining command tests in this separate lesson. We won't go over each test in excruciating detail in this lesson. Instead, we will only focus on the differences or uniqueness of particular tests. For detailed … Continue reading Lesson 1.9: Unit Testing Commands

Lesson 5.14: Use Service Client to Retrieve ItemTemplates From Game Services

In this lesson, we will refactor the ItemFactory to use the GameServiceClient to load item data from our game services rather than from the local resource file. We will fetch the ItemTemplates during the application startup so that any latency is part of the launch. We already have loading logic and a progress indicator at … Continue reading Lesson 5.14: Use Service Client to Retrieve ItemTemplates From Game Services

Lesson 1.8: Our First Command Unit Test

Having created our unit test project in lesson 1.7, we are ready to start writing some tests. This lesson will focus on the mechanics of setting up our first test in xUnit, how to mock our IUniversityRepository dependency, and the strategy of which tests to write to cover all of the scenarios for our commands. … Continue reading Lesson 1.8: Our First Command Unit Test

Lesson 1.7: Setting Up Unit Test Project

Testing is an important part of any project or command-line app. Spectre.Console.Cli is designed very well to support unit testing of commands. Unit tests are isolated tests meant to test just the code and logic within a component, or a command in the case of CLI apps. Using interfaces for dependent components and dependency injection … Continue reading Lesson 1.7: Setting Up Unit Test Project

Lesson 5.13: Build Reusable Service Client for Game Engine

After spending most of this chapter working to create our game services, we are going to return to the SimpleRPG game engine. We want to replace our local game data files with requests to our game services. That way we can retrieve updated data from the services and cache it locally for the running game … Continue reading Lesson 5.13: Build Reusable Service Client for Game Engine