计算器测试,实现功能

时间:2019-07-13 19:03:05

标签: c#

我正在解决这个难题,它是在称为“计算器”的控制台应用程序中创建的,它希望我创建4个与计算器有关的方法。

实现方法: 加 减去 乘 除

每个方法将接受两个整数,并且它们将返回一个值。

但是在另一个称为“计算器测试”的控制台应用程序中,将调用这些方法并添加值。我必须运行测试,如果测试成功,那么挑战就完成了。

查看下面的“计算器测试”代码。

我确实弄乱了代码,所以确实犯了一些明显的错误,但是,这让我抓狂了。

我实现了这些功能,并按照挑战的要求添加了两个整数。

本来我还有其他绳子,但是它们错了,对挑战没有用。

计算器代码:

using System;
namespace code_challenge.Challenges
{
    public class Calculator
    {
public static void Main(string[] args)
        {
            // Implement the add function below here
            public void Add(int num1, int num2)
            {
                Console.WriteLine(num1 + num2);
            }

            // Implement the subtract function below here
            public void Subtract(int num1, int num2)
            {
                Console.WriteLine(num1 - num2);
            }


            // Implement the multiply function below here
            public void Multiply(int num1, int num2)
            {
                Console.WriteLine(num1 * num2);
            }

            // Implement the divide function below here
            public void Divide(int num1, int num2)
            {
                Console.WriteLine(num1 / num2);
            }

        }

CalculatorTests的代码:

namespace code_challenge.Tests
{
    [TestFixture()]
    public class CalculatorTests
    {
        readonly Calculator calculator = new Calculator();

        [Test()]
        public void TestAddition()
        {
            Assert.AreEqual(4, calculator.Add(2, 2));
        }

        [Test()]
        public void TestSubtraction()
        {
            Assert.AreEqual(2, calculator.Subtract(4, 2));
        }

        [Test()]
        public void TestMultiplication()
        {
            Assert.AreEqual(6, calculator.Multiply(2, 3));
        }

        [Test()]
        public void TestDivision()
        {
            Assert.AreEqual(2, calculator.Divide(6, 3));
        }

    }

预期结果:传入两个int数,并让Calculator Test函数使用其默认数进行计算。

实际结果:“修饰符'public'对此项目无效”,“程序不包含适用于入口点的静态'Main'方法,并且''Calculator'不包含Add /的定义减/乘/除,找不到可以接受的扩展方法“加/减/乘/除”,它接受类型为“计算器”的第一个参数。

1 个答案:

答案 0 :(得分:0)

您在Main方法中将Calculator的方法定义为局部函数。公共访问修饰符对本地功能无效。这就是为什么您遇到第一个错误的原因。这似乎也就是为什么您的测试没有“看到”要测试的方法的原因(它们在Main内部,并且不可见)。

由于我看不到代码的其余部分,所以我无法告诉您为什么您的程序没有合适的Main方法。

实际上,如果您的任务是编写一个类并进行单元测试,则可以创建一个类库项目,在其中编写Calculator类,并在其中创建单元测试项目。您不必为此创建控制台应用程序(除非您希望有其他与计算器进行交互的方式,例如使用控制台)。