2

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として表示されます(ファイルの配置方法によっては、「このファイルのデザイナーは、どのクラスも表示されなかったため、表示できませんでした」などのメッセージが表示されます。その中に設計することができます」が表示されます)。この動作を抑制する方法はありますか、それとも常にこのファイルを右クリックして「コードを表示」する必要がありますか?

4

3 に答える 3

7

右クリックして[プログラムから開く...]を選択し、目的のエディターを選択して[デフォルトに設定]をクリックします。

テストクラスがそうではないものであるかのように見せかける必要が本当にありますか?それは私にはひどく良い考えのようには聞こえません。

于 2010-01-08T20:00:07.210 に答える
3

クラスに属性を追加して[System.ComponentModel.DesignerCategory("")]、ソリューションエクスプローラーでファイルをダブルクリックして開くときにVisualStudioがデザイナーを開かないようにします。

于 2011-12-27T00:27:36.340 に答える
0

別の解決策:

ファイルを右クリックし、[プログラムから開く... ]メニューをクリックします。ダイアログボックスが開き、[ Microsoft Visual Basic Editor ]を選択して、[デフォルトに設定]をクリックします。[ OK]をクリックすると、ファイルはデザイナーではなくコードエディターを使用して常に開きます。

于 2015-01-23T03:12:24.133 に答える