BenMorris / NetArchTest

A fluent API for .Net that can enforce architectural rules in unit tests.
MIT License
1.36k stars 81 forks source link

Fixed nulls for Success result #119

Open lkurzyniec opened 1 year ago

lkurzyniec commented 1 year ago

Collections should never return null. Better value for collection is just empty collection. As a reference, you can take API - collection endpoints never return null, but empty array ([]).


Null cause problems, ie I can't do like this Assert.True(result.IsSuccessful, $"Failing Types: {string.Join("; ", result.FailingTypeNames)}");, I need Assert.True(result.IsSuccessful, $"Failing Types: {string.Join("; ", result.FailingTypeNames ?? Array.Empty<string>())}"); (reference).

BenMorris commented 1 year ago

I recognise that returning null is regarded as a bad habit, but I'm reluctant to introduce a breaking change to the public interface at this point.

I'll keep this pull request open so it can be swept up when there's another major release - that will make it easier to signpost this kind of change so we don't break anybody's tests unnecessarily.

lkurzyniec commented 1 year ago

Fair enough, thx.

jgveire commented 4 months ago

I would really like this change because the first time I used this package I got a null reference exception because I expected failing types to be an empty array. I agree with @lkurzyniec that this is a common practice.