Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#单元测试错误_C#_Unit Testing - Fatal编程技术网

c#单元测试错误

c#单元测试错误,c#,unit-testing,C#,Unit Testing,我试着熟悉单元测试,但是我不断地遇到这个恼人的错误,我不知道为什么。我做了一个只除以2个数的类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DivideNum { class Program { public static int doStuff(int n

我试着熟悉单元测试,但是我不断地遇到这个恼人的错误,我不知道为什么。我做了一个只除以2个数的类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DivideNum
{
    class Program
    {
        public static int doStuff(int num1, int num2)
        {
            int result = num1 / num2;
            return result;


        }
        static void Main(string[] args)
        {

        }
    }
}
然后我进行了单元测试

using DivideNum;
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {

            //arrange
            int a = 10;
            int b = 2;
            int result = 5;

            //act

        }
    }
}

我添加了对DivideNum命名空间的引用,并使用DivideNum添加,但我仍然无法在测试类中获得对DivideNum类的引用。它根本不会出现在我的测试代码中。为什么我不能在我的测试类中使用DivideNum类?

如果你想从另一个程序集(你的单元测试项目)访问你的类,你需要将它标记为public。像这样:

public class Program
{
    public static int doStuff(int num1, int num2)
    {
        int result = num1 / num2;
        return result;


    }
    static void Main(string[] args)
    {

    }
}

如果希望从另一个程序集(单元测试项目)访问类,则需要将其标记为public。像这样:

public class Program
{
    public static int doStuff(int num1, int num2)
    {
        int result = num1 / num2;
        return result;


    }
    static void Main(string[] args)
    {

    }
}

程序
类没有访问类型,因此默认情况下它是
内部
。将其更改为
public
可以修复作业

public class Program
{
   // Do stuff
}

程序
类没有访问类型,因此默认情况下它是
内部
。将其更改为
public
可以修复作业

public class Program
{
   // Do stuff
}

因为类
程序
未标记为公共。将其更改为
public class Program
@PeterBons Not private,但
intenal
是类的默认访问权限,除非类是嵌套的。@PeterBons我的天哪,就是这样,哈哈,非常感谢,我甚至没有注意到类不是公共的。@HimBromBeere你完全正确,感谢您指出。您没有以任何方式(例如通过调用
DoStuff
-方法)调用您的被测系统,因此即使将其公开也不会改变这一点。然而,两者都不能解释为什么你的测试没有出现在列表中。您确定显示了正确的代码来重现您的问题吗?因为类
程序
未标记为公共。将其更改为
public class Program
@PeterBons Not private,但
intenal
是类的默认访问权限,除非类是嵌套的。@PeterBons我的天哪,就是这样,哈哈,非常感谢,我甚至没有注意到类不是公共的。@HimBromBeere你完全正确,感谢您指出。您没有以任何方式(例如通过调用
DoStuff
-方法)调用您的被测系统,因此即使将其公开也不会改变这一点。然而,两者都不能解释为什么你的测试没有出现在列表中。你确定你展示了正确的代码来重现你的问题吗?