我的单元测试用例项目出现CS0175 Use of keyword 'base' is not valid in this context
错误。
这是我的代码的样子:
实现接口的类
public interface iUtility
{
void Print();
}
public class Utility: iUtility
{
public void Print()
{
Console.Write("Print");
}
}
使用实用程序类和派生类的基类
public class BaseCls
{
private iUtility _iUtility;
public BaseCls()
{
_iUtility = new Utility();
}
public BaseCls(iUtility iUtility)
{
_iUtility = iUtility;
}
}
public class DerivedCls : BaseCls
{
public void PrintSomething()
{
Console.Write("Print Something");
}
}
在我的单元测试项目中,我正在测试派生类并尝试传递实用程序类的实例。为什么现在执行此操作可能现在没有意义,但我计划使用统一框架并使用IoC注入不同的依赖项。
为了简洁起见,我没有显示所有代码。
单元测试项目中发生错误
[TestClass]
public class UnitTest1
{
public void TestInitialize()
{
//I want to pass instance of utility class here
iUtility obj = new Utility();
DerivedCls cls = new DerivedCls(): base(obj);
}
[TestMethod]
public void TestMethod1()
{
}
}
我该怎么做才能解决此错误?我想通过构造函数从派生类传递实用工具类的实例。
答案 0 :(得分:0)
您需要在派生类中提供一个构造函数。
public class DerivedCls : BaseCls
{
public DerivedCls(iUtility utility) : base(utility) { }
}
然后像往常一样构造DerivedCls
实例:new DerivedCls(someIUtilityInstance)