从解决方案中的其他程序访问类

时间:2012-09-06 01:53:41

标签: unit-testing class multiple-projects

我已经阅读了有关使用程序顶部的“使用”语句引用程序命名空间的帖子here以及herehere。我添加了适当的引用,使类公开,并引用了适当的命名空间。我相信我的设置是正确的...我真的觉得这里有一个基本的问题有点傻,但我很难过。我必须遗漏一些东西,因为它仍然不起作用,我无法弄明白。

我正在尝试学习如何使用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指令或程序集引用?)”

我真的不知道我在哪里出错...任何帮助都会受到赞赏。

0 个答案:

没有答案