Integration Testing with xUnit

A few years back, I had given up on xUnit in favor of Fixie because of the flexibility that Fixie provides. The xUnit project is highly opinionated, and geared strictly towards unit tests. It's great for that. A broader testing strategy includes much more than just unit tests. With Fixie, I can implement any of the XUnit Test Patterns to implement a comprehensive automated test strategy (rather than, say, having [Read More]

AutoMapper LINQ Support Deep Dive

My favorite feature of AutoMapper is its LINQ support. If you're using AutoMapper, and not using its queryable extensions, you're missing out! Normal AutoMapper usage is something like: var dest = _mapper.Map<Dest>(source); Which would be equivalent to: var dest = new Dest { Thing = source.Thing, Thing2 = source.Thing2, FooBarBaz = source.Foo?.Bar?.Baz }; The main problem people run into here is that typically that source object is [Read More]

AutoMapper 9.0 Released

As with the other major releases of AutoMapper, this one introduces breaking API changes with relatively few other additions. The major breaking changes (see upgrade guide for details) include: Removing the static API Removing "dynamic" maps (automatically created maps) Fix on IMappingAction to include a ResolutionContext parameter The motivation behind removing the static API is that most new users to AutoMapper will do so through the DI extensions packages, using [Read More]

Immutability in Message Types

In just about every custom I've worked with, eventually the topic of immutability in messages comes up. Messages are immutable in concept, that is, we shouldn't change them (except in the case of document messages). Since messages are generally immutable in concept, why not make them immutable in our applications dealing with the messages themselves? Immutabilty has a number of benefits, ask Mark Seemann laid out in a discussion question [Read More]

Building Messaging Endpoints in Azure: A Generic Host

Posts in this series: Evaluating the Landscape A Generic Host Azure WebJobs Azure Container Instances Azure Functions In the last post, we looked at the many ways we can consume messages in Azure as a message endpoint. Unfortunately, there's not an easy answer. We don't have a simple, PaaS solution to a background service. We basically have some very bare serverless options, some shimmed options, and IaaS options through containers. [Read More]