我正在尋找方法來快速調試我剛剛寫的代碼,看看它的行爲是否正確,我所有的假設都是正確的。我不想運行完整的系統,因爲部分基礎設施無法使用此代碼。我使用單元測試,但我覺得它很麻煩。有更好的嗎?如何快速調試我的代碼在孤立 - 內部,只有開發人員,扔掉測試
目標是:
- 調試任何代碼迅速而不產生額外的項目,應用程序等
- 輕鬆重複調試。
- 測試是爲了這個特定的目的,可能會使用固定的文件路徑,數據庫連接,任何東西。通常在正確的事情後扔掉。
- 需要訪問我的對象的內部成員。
- 訪問私有成員將是很好的好處。
- 我很好,直接在我的對象中編寫測試函數。其實這是首選。
做這將是夢想的方式:
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
我期待您的迴音。如果你有更好的解決方案,請隨時分享答案,當然,如果有任何答覆對你有幫助,你也可以將它標記爲答案,有一個愉快的假期:) –