我在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();
}
}
}
答案 0 :(得分:4)
using指的是命名空间,而不是特定的类(除非为类名添加别名)。您的using语句应仅包含单词Home。
using Home.InventoryType.InventorySelect;
//becomes
using Home;
以下是使用指令MSDN的链接:using Directive (C#)
答案 1 :(得分:2)
将InventoryType
类声明为public
InventorySelect
课程可以是private
而不是public
答案 2 :(得分:2)
我假设您的测试类在自己的项目中,因此您需要添加对该项目的引用。 (using语句不添加引用,它只允许您在代码中使用类型而不完全限定其名称。)
答案 3 :(得分:1)
在解决方案中创建“多项目”时(通过向任何现有解决方案添加项目),项目彼此不了解。
转到解决方案资源管理器上的测试项目,在“参考”下,右键单击并选择“添加参考”。然后选择“项目”选项卡,您将能够将项目的引用添加到测试项目中。
另外,请确保将项目中的类定义为“public”,以便能够在测试项目中访问它们。
namespace Home
{
public class InventoryType
{
...
}
}
请注意,您仍需要在C#测试类之上使用“using”关键字:
using Home;
namespace HomeTest
{
public class TestInventoryTypeCase
{
...
}
}