KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
We have a bug to fix, and like any good TDD practitioner, I want to write a failing test to represent the bug first. The bug is in a method that takes a rather complex type as input. The bug will only reproduce when the complex type has a certain combination of property values set. So far I have reproduced the bug and, in the debugger, can view the run-time value of the complex type. Now I need to create that complex type in the "Arrange" section of my unit test so that I can feed it to the buggy method in the "Act" section of the unit test. I can write a big object initializer code block, by hand, such as the following one: var cats = new List<Cat> { new Cat {Name = "Sylvester", Age = 8}, new Cat {Name = "Whiskers", Age = 2} }; or even something like this: var cats = new List<Cat>(); var cat1 = new Cat(); cat1.Name = "Sylvester"; cat1.Age = 8; cats.Add(cat1); var cat2 = new Cat(); cat2.Name = "Whiskers"; cat2.Age = 2; cats.Add(cat2); Nothing fancy there. The only problem is the "by hand" part -- the complex type in my case is not nearly as trivial as the above example. I can also view the object, while in the debugger, with any of the built-in debugger visualizers. So I figured I would write a custom Debugger Visualizer that will generate the object initialization code for me. To use it, I would reproduce the issue in the debugger, pull up the QuickWatch window and select my custom visualizer. Another option would be to write a custom serialization implementation that would "serialize" to a block of object initialization code. To use this would be a bit harder than just pulling up the QuickWatch window, but this could work. Before I tackle this problem myself, has anybody done something like this? Mind sharing a code snippet? Or would anyone suggest another approach? P.S. In my case,
Tags (comma-separated)
Save Edits
Cancel