New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scoped value formatters #2478
Comments
Maybe |
It is also an option, this way collection of formatters could be internal. |
I'm fine with that. What about you @jnyrup ? |
I like the proposal of having scoped formatters 👍 As the signature is When retrieving all formatters in Perhaps we should also move the current To set a scoped formatter you'll only have to do using var scope = new AssertionScope();
scope.FormattingOptions.AddFormatter(new MyCustomFormatter()); |
That sounds like a great idea. Let's go for that. |
@FLAMESpl are you still interested in this one? |
@dennisdoomen: I would certainly be interested 😃 |
I meant in implementing this. |
Ah whoops, I misunderstood. |
I am willing to take that, if @FLAMESpl doesn't want to. |
Should a nested |
Everything that is associated with an |
Ok, the tricky part is how to determine which scoped formatters to remove at scope dispose 🤔 |
Yeah, it means that the scope needs some state on which scope has added a particular formatter. |
Background and motivation
This feature is about allowing adding custom
IValueFormatter
s toAssertionScope
. In my development I discovered that I need to selectively customize formatting of an object based on the test's context. There is an option to remove once added formatter but it will not play nicely if tests would be executed simultanously. Having scoped formatters have a side bonus of reusable parametrizing formatter instances.API Proposal
First make
IFormatterCollection
interface.Then add it to
AssertionScope
:Formatter
API remains unchanged. Internally it will utilizeIFormatterCollection
for sake of coherence.API Usage
Alternative Designs
Alternative would be to add a custom key-value store in
AssertionScope
that could be read inside aIValueFormatter
.Risks
None I can think of.
Are you willing to help with a proof-of-concept (as PR in that or a separate repo) first and as pull-request later on?
Yes, please assign this issue to me.
The text was updated successfully, but these errors were encountered: