Windowsフォームアプリケーションの一部用にNUnitTextFixtureを作成しています。ファイル内の一部のクラスは、次のようにUIコンポーネントクラスから派生しています。
[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として表示されます(ファイルの配置方法によっては、「このファイルのデザイナーは、どのクラスも表示されなかったため、表示できませんでした」などのメッセージが表示されます。その中に設計することができます」が表示されます)。この動作を抑制する方法はありますか、それとも常にこのファイルを右クリックして「コードを表示」する必要がありますか?