如何从不同的类文件继承方法?



好的,伙计们,首先我很抱歉我对c#不太好。 基本上我有 2 个类文件,让我们调用一个 TestBase 和另一个 TestScripts1。 在类 TestScripts1 中,它继承了初始值设定项 TestBase,因此我的所有脚本都可以运行。现在反过来,我想在TestScripts1中使用一个名为DragAssignDeviceAndDriver((的方法之一,并在TestBase中使用它。 有谁知道该怎么做?

这是我从类 TestBase 中初始化程序的代码:

[TestClass]
public class TestBase
{        
[TestInitialize]
public void BaseTestInit()
{
// create chrome driver
//driver = new ChromeDriver();
ChromeOptions opt = new ChromeOptions();
opt.AddArgument("disable-infobars");
opt.AddArguments("--start-maximized");
opt.AddArguments("--disable-extensions");
driver = new ChromeDriver(opt);
LoginAndSelectAutomationFleet(driver);
//GenerationTestData();
}

}
public void LoginAndGenerateTestData(IWebDriver driver)
{
DragAssignDeviceAndDriver();
}

上面如何继承方法DragAssignDeviceAndDriver((;

这是我的代码类 TestScripts1 - 正如你所看到的 TestScripts1 已经继承了 TestBase:

[TestClass]
public class TestScripts1: TestBase
{
[TestInitialize]
public void Setup()
{
(_regRep.organizationOption, "Amazing Power", driver);
}

[TestMethod]
[TestCategory("Cat1")]
public void DragAssignDeviceAndDriver()
{
//Do stuff   
}

你"不能"从基类调用在派生类中定义的方法。基类需要知道应该如何调用它。它应该在基类中声明,并在导数类中被重写。

在这种情况下,当基类没有任何默认实现时,可以将其声明为抽象。(因为它是一个基类,所以不会直接构造(

这样,基类就可以调用重写的方法。

例如:

[TestClass]
public abstract class TestBase
{       
protected abstract void DragAssignDeviceAndDriver();
[TestInitialize]
public void BaseTestInit()
{
// create chrome driver
//driver = new ChromeDriver();
ChromeOptions opt = new ChromeOptions();
opt.AddArgument("disable-infobars");
opt.AddArguments("--start-maximized");
opt.AddArguments("--disable-extensions");
driver = new ChromeDriver(opt);
LoginAndSelectAutomationFleet(driver);
//GenerationTestData();
}
public void LoginAndGenerateTestData(IWebDriver driver)
{
DragAssignDeviceAndDriver();
}
}

[TestClass]
public class TestScripts1: TestBase
{
[TestInitialize]
public void Setup()
{
(_regRep.organizationOption, "Amazing Power", driver);  // <--- ??
}

[TestMethod]
[TestCategory("Cat1")]
protected override void DragAssignDeviceAndDriver()
{
//Do stuff   
}
}

最新更新