我正在寻找一种可以进行单元测试的工具,比如
IPerson p = new Person();
p.Name = "Sklivvz";
Assert.AreEqual("Sklivvz", p.Name);
并自动生成相应的存根类和接口
interface IPerson // inferred from IPerson p = new Person();
{
string Name
{
get; // inferred from Assert.AreEqual("Sklivvz", p.Name);
set; // inferred from p.Name = "Sklivvz";
}
}
class Person: IPerson // inferred from IPerson p = new Person();
{
private string name; // inferred from p.Name = "Sklivvz";
public string Name // inferred from p.Name = "Sklivvz";
{
get
{
return name; // inferred from Assert.AreEqual("Sklivvz", p.Name);
}
set
{
name = value; // inferred from p.Name = "Sklivvz";
}
}
public Person() // inferred from IPerson p = new Person();
{
}
}
我知道ReSharper和Visual Studio会做一些这样的事情,但我需要一个完整的工具--命令行或诸如此类的东西--它能自动推断出需要做什么。如果没有这样的工具,你将如何编写它(例如,从头开始扩展ReSharper,使用哪些库)?
发布于 2008-09-27 09:47:29
令人惊讶的是,没有人真的对你所要求的东西给予任何东西。
我不知道答案,但我会给出我的想法。
如果我自己尝试写这样的东西,我可能会看到一个resharper插件。我这么说的原因是因为正如你所说的,resharper可以做到这一点,但需要单独的步骤。因此,我会逐行编写代码,并将适当的resharper创建方法链接在一起。
现在我根本不知道怎么做,因为我从来没有为resharper构建过任何东西,但这就是我想要做的。这是可以做到的,这是合乎逻辑的。
如果你真的写了一些代码,请把它贴出来,因为我发现它也很有用,能够在一步中生成整个骨架。非常有用。
发布于 2008-09-18 11:13:13
发布于 2009-01-07 14:35:23
这是可行的-至少在理论上是可行的。我要做的是使用像csparser这样的东西来解析单元测试(不幸的是,您不能编译它),然后从那里获取它。我能看到的唯一问题是,您正在做的事情在方法上是错误的-从实体类生成单元测试(实际上,Visual Studio正是这样做的)比从实体类生成单元测试更有意义。
https://stackoverflow.com/questions/91617
复制相似问题