[英]Unit Testing Private Methods in Unity Test Runner
我想在 C# 中对我的私有方法进行单元测试。 由于这些方法是私有的,因此无法从测试环境访问它们。
我想办法这样做:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\PublicAssemblies\
and copy the file Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
to a folder in your Unity project.using Microsoft.VisualStudio.TestTools.UnitTesting;
public class MyClass
{
private static int AddOne(int i)
{
return i += 1;
}
private int SubOne(int i)
{
return i -= 1;
}
}
MyClass myClass = new MyClass();
PrivateType privateTypeMyClass = new PrivateType(myClass.GetType());
int res1 = (int)privateTypeMyClass .InvokeStatic("AddOne", 2);
PrivateObject privateObjectMyClass = new PrivateObject(myClass);
int res2 = (int)privateObjectMyClass.Invoke("AddOne", 2);
obj[]
来传递这些参数。不建议为private
方法编写单元测试。 您应该只为public
方法编写测试,因为调用者仅通过公共方法和属性与您的 class 交互。 在流程中, private
方法被public
方法调用。 因此,编写您的测试,以便它们调用public
方法并通过不同的流程覆盖private
方法。 通过这种方式,您还可以知道代码中是否有一些可以删除的未使用的private
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.