1

我在 Visual Studio (2010) 中创建了一个非常简单的域层。然后我使用新的测试向导创建了一个基本的单元测试。但是,当我尝试输入 using 语句以便测试我的代码时。它说找不到我的命名空间...这是我第一次使用 Visual Studio,所以我不知道自己在做什么错误的。

我的代码

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

4 回答 4

4

using 指的是命名空间,而不是特定的类(除非您为类名添加别名)。您的 using 语句应仅包含 Home 一词。

using Home.InventoryType.InventorySelect; 
//becomes
using Home;

这是关于使用指令的 MSDN 链接:using Directive (C#)

于 2012-09-09T16:16:46.197 回答
2

将类声明InventoryTypepublic

InventorySelect类可以private而不是public

于 2012-09-09T16:08:45.527 回答
2

我假设您的测试类在它自己的项目中,因此您需要添加对该项目的引用。(using 语句不添加引用,它仅允许您在代码中使用类型,而无需完全限定其名称。)

于 2012-09-09T16:20:08.227 回答
1

当您在解决方案中创建“多项目”时(通过将项目添加到任何现有解决方案),这些项目彼此不了解。

转到解决方案资源管理器上的测试项目,在“参考”下,右键单击并选择“添加参考”。然后选择“项目”选项卡,您将能够将项目的引用添加到测试项目。

此外,请确保将项目中的类定义为“公共”,以便能够在测试项目中访问它们。

namespace Home
{
    public class InventoryType
    {
            ...
    }
}

请注意,您仍然需要 C# 测试类顶部的“使用”关键字:

using Home;

namespace HomeTest
{
    public class TestInventoryTypeCase
    {
           ...
    }
}
于 2013-08-21T21:55:48.293 回答