我已经阅读了有关使用程序顶部的“使用”语句引用程序命名空间的帖子here以及here和here。我添加了适当的引用,使类公开,并引用了适当的命名空间。我相信我的设置是正确的...我真的觉得这里有一个基本的问题有点傻,但我很难过。我必须遗漏一些东西,因为它仍然不起作用,我无法弄明白。
我正在尝试学习如何使用Nunit运行单元测试,同时将测试与主程序分开。这是我到目前为止的代码:
Program.cs和Account.cs在第一个项目中(NUnitTestProgramWithSeparation)
Program.cs -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NUnitTestProgramWithSeparation
{
public class MyAccountingSoftware
{
public static void Main()
{
Account DemoAccount = new Account();
DemoAccount.Deposit(1000.00F);
DemoAccount.Withdraw(500.50F);
Console.WriteLine("Our account balance is {0}", DemoAccount.Balance);
}
}
}
Account.cs -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NUnitTestProgramWithSeparation
{
public class Account
{
private float balance;
public void Deposit(float amount)
{
balance += amount;
}
public void Withdraw(float amount)
{
balance -= amount;
}
public void TransferFunds(Account destination, float amount)
{
}
public float Balance
{
get { return balance; }
}
}
}
然后,在第二个名为UnitTests的项目中,我有UnitTests.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using NUnitTestProgramWithSeparation;
namespace UnitTests
{
[TestFixture]
public class UnitTests
{
[Test]
public void TransferFunds()
{
Account source = new Account();
source.Deposit(200.00F);
Account destination = new Account();
destination.Deposit(150.00F);
source.TransferFunds(destination, 100.00F);
Assert.AreEqual(250.00F, destination.Balance);
Assert.AreEqual(100.00F, source.Balance);
}
[Test]
public void DepositFunds()
{
Account source = new Account();
source.Deposit(200.00F);
Assert.AreEqual(200.00F, source.Balance);
}
}
}
当我去编译时,我在UnitTest.cs中的所有帐户引用中都收到错误,说“找不到类型或命名空间名称'帐户'(您是否缺少using指令或程序集引用?)”
我真的不知道我在哪里出错...任何帮助都会受到赞赏。