【问题标题】:Calling a Method in another class using TestNG in Java在 Java 中使用 TestNG 调用另一个类中的方法
【发布时间】:2019-06-18 03:55:30
【问题描述】:

我正在使用 TestNG 和 Java 来自动化一个 android 应用程序。

我很难从一个类调用一个方法到另一个类。

这里是代码。

1 类(Appium)

//public AndroidDriver<AndroidElement> driver;

    @BeforeSuite
    public static AndroidDriver<AndroidElement> capabilities() throws MalformedURLException {
        // TODO Auto-generated method stub

            DesiredCapabilities cap = new DesiredCapabilities();
            cap.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
            cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android device");
            cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "100");
            cap.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "App Package");
            cap.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY,"App Activity");
            cap.setCapability("autoGrantPermissions", true);
            cap.setCapability("autoAcceptAlerts", true);
            AndroidDriver<AndroidElement> driver=new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"),cap);
            return driver;
        } 
}

我需要在另一个 .java 类中调用 capabilities() 方法,但我使用的是 TestNG。

所以在@Test 的新类中,我需要在变量驱动程序中使用这个方法。我不能通过将这个类扩展到新类来做到这一点。有什么别的办法吗?

【问题讨论】:

    标签: java testng appium appium-android


    【解决方案1】:

    在这种情况下,您可以使用多级继承。创建一个您将设置功能的类,并从另一个您将编写@BeforeSuite 的类扩展该类,现在从您的测试类扩展该类,@BeforeSuite 将从所有测试类自动运行。

    例如:

        class CapabilitiesClass{
        public void setCapabilities(){
             //Set your capabilities here
              }
         }
    
        class BaseClass extends CapabilitiesClass{
        //Write your BeforeSuite here and call the parent class method
        @BeforeSuite
        public void setUp(){
            setCapabilities();
        }
    
        class TestClass extends BaseClass{
        //Write your @Test here
        }
    

    【讨论】:

      【解决方案2】:

      使用方法将类创建为DriverUtility

      public class DriverUtility {
      
         public static AndroidDriver<AndroidElement> capabilities() {
      

      在您的测试中将其称为:

      public AndroidDriver<AndroidElement> driver = DriverUtility.capabilities();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-24
        • 1970-01-01
        • 1970-01-01
        • 2011-06-03
        相关资源
        最近更新 更多