我正在寻找方法来快速调试我刚刚写的代码,看看它的行为是否正确,我所有的假设都是正确的。我不想运行完整的系统,因为部分基础设施无法使用此代码。我使用单元测试,但我觉得它很麻烦。有更好的吗?如何快速调试我的代码在孤立 - 内部,只有开发人员,扔掉测试
目标是:
- 调试任何代码迅速而不产生额外的项目,应用程序等
- 轻松重复调试。
- 测试是为了这个特定的目的,可能会使用固定的文件路径,数据库连接,任何东西。通常在正确的事情后扔掉。
- 需要访问我的对象的内部成员。
- 访问私有成员将是很好的好处。
- 我很好,直接在我的对象中编写测试函数。其实这是首选。
做这将是梦想的方式:
namespace Aaa
{
class SomeClass
{
public string Name { get; private set; }
public SomeClass(string name, int value)
{
this.Name = name;
InitializeSth();
}
public DoSomethingPublic()
{
// ...
}
private DoSomethingPrivate()
{
// ...
}
public static void TestThis() // <-- debug this
{
var obj = new SomeClass("a", 1); // <-- put breakpoint here
obj.DoSomethingPublic();
obj.DoSomethingPrivate();
}
}
}
这是可能在Java中,是这样一个伟大的事情。这也允许访问私人事物。
但我也接受其他选项。在VS2015中有这样的事吗?
我迄今为止尝试:
- 即时窗口 - 我不认为它可以被配置为这样的目的
- C#互动 - 这似乎并不支持调试。还是呢?
- 单元测试 - 这是我现在使用的(使用MSTest)。但我觉得非常麻烦,这是因为:
- 我需要创建新的项目,或者包含到MS测试程序集的引用
- 我需要额外的步骤来访问内部类型和成员,或改变的事情公开(我不喜欢这样)。
- 更多访问私人会员的步骤。
- 如果在项目中使用单元测试,我会与其他测试混淆。
- 再次启动调试需要许多点击,而不是sth + sth + F5。
- 其中一些项目有一些解决方法,但总的来说,测试基础架构似乎是为了不同的目的而设计的,我总是有一种感觉,我正在与它作斗争。
我也发现了大约有调试任何静态功能的能力ReSharper的一些信息。但我不想使用Resharper,主要是因为性能。
嗨Arek,这个问题呢?你能从我们的建议中获得有用的信息吗?任何更新?:) –
我想我找到了一些方法,但我需要测试它。让我从寒假回来,我会在下周发布一些东西。 – Arek
我期待您的回音。如果你有更好的解决方案,请随时分享答案,当然,如果有任何答复对你有帮助,你也可以将它标记为答案,有一个愉快的假期:) –