0

尝试对类项目的一些简单代码进行单元测试,但是在我的测试代码中 - 它一直告诉我找不到我的 InventorySelect。它问我是否缺少 using 语句等,但据我所知,这都是正确的。

我的代码

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 回答