0

クラスプロジェクトのいくつかの単純なコードを単体テストしようとしていますが、私のテストコードでは、InventorySelectが見つからなかったと通知され続けます。usingステートメントectが欠落しているかどうかを尋ねられますが、私が見る限り、それはすべて正しいです。

私のコード

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Home
{
    class InventoryType
    {

        /// <summary>
        /// Selects the inventory type and returns the selected value
        /// </summary>
        public class InventorySelect
        {
            private string inventoryTypes;
            public String InventoryTypes
            {
                set
                {
                    inventoryTypes = value;
                }

                get
                {
                    return inventoryTypes;
                }
            }


            /// <summary>
            /// Validate that the inventory is returning some sort of value
            /// </summary>
            /// <returns></returns>
            public bool Validate()
            {
                if (InventoryTypes == null) return false;
                return true;
            }
        }
    }
}

私のテストコード

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Home.InventoryType.InventorySelect;

namespace HomeTest
{
    [TestClass]
    public class TestInventoryTypeCase
    {
        [TestMethod]
        public void TestInventoryTypeClass()
        {
            InventorySelect select = new InventorySelect();
            select.inventoryTypes = "Collection";

            if (Validate() = true)
                Console.WriteLine("Test Passed");
            else
                if (Validate() = false)
                    Console.WriteLine("Test Returned False");
                else
                    Console.WriteLine("Test Failed To Run");

            Console.ReadLine();

        }
    }
}
4

3 に答える 3

3

テストプロジェクトでは、テストするプロジェクト(のアセンブリ)への参照を追加する必要があります。


編集:ネストされたクラスInventorySelectは、パブリックとして宣言されていないクラス内にあります。InventoryTypeクラスをパブリックとして宣言します。でインスタンスを作成する必要があります

var select = new InventoryType.InventorySelect();
于 2012-09-09T17:36:25.080 に答える
3

クラスはネストされており、外部クラスは内部クラスです(宣言されていませんpublic)。内部クラスを外部クラスから移動するか、1)外部クラスを公開し、2)参照をInventorySelect外部クラス名で修飾しますInventoryType.InventorySelect

于 2012-09-09T17:40:05.640 に答える
2

あなたのInventoryTypeクラスはそうではありませんpublic!としてマークを付けてpublic、再コンパイルします。C#クラスはinternalデフォルトです。

于 2012-09-09T17:40:43.067 に答える