1

假设我有一个采用对象列表的方法。该方法通常可以轻松处理 20 个对象。每个对象都有 15 个左右的属性。

要对此进行单元测试,我需要输入所有 20 个对象,以便可以将它们传递到我的方法中。

当我可以在调试器监视窗口中看到我需要的完美示例时,这令人沮丧。

是否有工具可以获取我拥有的对象并将其输出到 C#?

注意:我看到了这个问题:How can I serialize an object to C# object initializer code? 但它生成的代码不起作用......

我想我不是第一个想要这个的人。比我想象的要难吗?还是已经有工具可以做到这一点?

4

2 回答 2

2

我创建了一个名为Object Exporter的 Visual Studio 插件,它正是这样做的。您可以以 C#、JSON 或 XML 格式导出对象实例。

于 2015-07-22T20:22:24.610 回答
1

为了单元测试的目的,我经常使用JavaScriptSerializer 类将大量对象转换为文本/从文本转换:

var fruits = new List<string>();
fruits.Add("Apple");
fruits.Add("Banana");
fruits.Add("Blueberry");
fruits.Add("Orange");

var jss = new JavaScriptSerializer();
var text = jss.Serialize(fruits);
Console.WriteLine(text);

上面的代码将产生以下输出:

["Apple","Banana","Blueberry","Orange"]

可以将其转换回如下所示的对象:

var jss = new JavaScriptSerializer();
var text = "[\"Apple\",\"Banana\",\"Blueberry\",\"Orange\"]";
var fruits = jss.Deserialize<List<string>>(text);

这种解决方法使我免于大量无聊的打字;)

于 2013-05-31T20:28:29.237 回答