c#单元测试错误
我试着熟悉单元测试,但是我不断地遇到这个恼人的错误,我不知道为什么。我做了一个只除以2个数的类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
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
-方法)调用您的被测系统,因此即使将其公开也不会改变这一点。然而,两者都不能解释为什么你的测试没有出现在列表中。你确定你展示了正确的代码来重现你的问题吗?