存根访问受保护的变量
问题描述:
我需要测试这个类:存根访问受保护的变量
public abstract class GaBase
{
protected GoogleAnalyticsInfo GAInfo;
protected abstract void PopulateGAInfo();
public string GetGoogleAnalyticsTag()
{
//Return any info related to GAInfo
}
//Some other stuffs
}
我需要单元测试GetGoogleAnalyticsTag
方法,但我需要设置的属性GAInfo
正确测试它。在生产代码中,我们使用我的PopulateGaInfo
方法从这个类派生出来。
如何使用存根来设置GAInfo
?
这里是我的测试方法:
public void MyTest1()
{
var ga = new StubGaBase()
{
PopulateGAInfo01 =() =>
{
// How can I set GAInfo here?
}
};
// The method I need to test
var script = ga.GetGoogleAnalyticsTag();
// My asserts
}
答
有被称为“子类 - 测试”,如果你需要访问的方法或行为(如模拟引发事件),这意味着你将手模式 - 滚动一个存根/模拟来展示测试所需的功能。该存根仅存在于您的测试项目中。
,如果你只是在测试抽象类的保护变量感兴趣,只需创建一个派生类并公开执行工作,并返回你所感兴趣的值的方法。
的awnser取决于你想要什么测试并使用GetGoogleAnalyticsTag()方法。如果没有实施,很难让你的问题更加突出。 – Peter
如果您想成为Benjamin,请更新您的个人资料,而不是将这些信息放入您的问题中。 –