我正在爲Windows窗體應用程序的某些部分編寫一個NUnit TextFixture。一些文件中的類都是從UI組件類派生的,就像這樣:有沒有辦法阻止Visual Studio 2008在默認情況下在設計視圖中打開文件?
[TestFixture]
public class MainFormTest : PersistenceTestBase // Base class here is not a form
{
class TestMainForm : MainForm // MainForm inherits from Form
{
public new String SomeMethod()
{
// Some MainForm private method overridden to expose it to my test fixture
}
}
private TestMainForm mainForm;
[TestFixtureSetUp]
public void TestFixtureSetUp()
{
mainForm = new TestMainForm();
}
[Test]
public void TestMainFormDoesXYZ()
{
// Perform unit testing...
}
}
不過,我遇到了一個煩惱是,因爲類從UI組件類繼承時,Windows打開了設計器窗口時,我在解決方案資源管理器中雙擊我的單元測試文件。其中,由於它不是一個「真正的」UI元素(而是一個測試類),它顯示爲一個破損的UI(取決於我如何排列文件,消息如「設計者無法顯示此文件,因爲沒有任何類在它內部可以設計「顯示)。有沒有辦法抑制這種行爲,或者我總是不得不右鍵點擊這個文件和「查看代碼」?
不錯!實際上,測試類*擴展*基本控件(作爲單元測試的內部類),但我從不想將它們編輯爲表單(僅限於基類)。所以他們真的在測試中扮演真正的形式。這樣做的原因是基本上讓我的UnitTest以用戶的身份控制Form,並且可能訪問測試所需的一些內部位。我發現UnitTesting表單在使用某些記錄/回放框架之外存在問題。任何其他想法的Windows窗體的手動測試? – 2010-01-08 20:11:24
呵呵,就在我之前評論中的「添加評論」之後,我意識到也許我的最後一句話應該是自己的堆棧溢出問題(如果尚不存在的話)。 :-) – 2010-01-08 20:12:36
@Ogre:我沒有注意到測試夾具本身不是延伸形式的類。 – 2010-01-08 20:21:26