1

我已经阅读了有关使用程序顶部的“使用”语句来引用程序命名空间的帖子,这里这里这里。我添加了适当的引用,公开了类,并引用了适当的命名空间。我相信我的设置是正确的......老实说,在这里问这样一个基本问题我觉得有点傻,但我很难过。我一定是遗漏了一些东西,因为它仍然无法正常工作,而且我无法弄清楚。

我正在尝试学习如何使用 Nunit 运行单元测试,同时将测试与主程序分开。这是我到目前为止的代码:

Program.cs 和 Account.cs 在第一个项目中(NUnitTestProgramWithSeparation)

程序.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);
            }
        }
    }

帐户.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 指令或程序集引用?)”

我真的不知道我在哪里出错了......任何帮助都将不胜感激。

4

0 回答 0