【问题标题】:I have Class file which has multiple methods, Can i invoke the class from Testcase我有具有多种方法的类文件,我可以从 Testcase 调用该类吗
【发布时间】:2019-12-04 11:42:32
【问题描述】:

我有一个名为 TestingClass 的课程,我还有一个名为 TestCase 的课程。

TestingClass 中我有4 个相互依赖的方法,我可以从我的TestCase 文件中调用这个类文件并一次调用所有方法吗?

【问题讨论】:

  • 只有你能回答这个问题......除非你提供更多信息,比如一次调用所有方法的意思,以及你是否从技术角度询问是否可行,或者更像最佳实践,当然还有一些代码可能会有所帮助。
  • 你能告诉我们你的代码吗?否则很难帮你
  • 这是一个硬件相关问题。如果您希望一次调用 4 个方法,则至少需要 4 个内核,即使这样也不能绝对确定如果其中一个内核忙于做其他事情,它们会同时执行。
  • 理论上,您可以为 4 个函数中的每一个创建一个辅助包装函数,该函数将基于 volatile 属性阻塞(无限循环),直到所有 4 个函数都准备好,但如果你有更少,它可能会永远阻塞超过 4 个核心。

标签: java class methods junit testcase


【解决方案1】:

是的,如果他们有知名度,你可以。

在您的TestCase 中,您必须声明一个变量TestingClass 并实例化它。然后,如果你的方法是public,你可以使用它们。

这是一个例子:

public class TestCase {

     private TestingClass testingClass = new TestingClass();

     @Test
     public void test1(){
         testingClass.methodFromTestCase();
     }
}

【讨论】:

    【解决方案2】:

    您可以尝试扩展 TestingClass 并像这样覆盖这些方法,

    public class TestCase extends TestingClass {
        @Override
        public void method1(){
           super.method1();
        }
    
        @Override
        public void method2(){
           super.method2();
        }
    
        @Override
        public void method3(){
           super.method3();
        }
    
        @Override
        public void method4(){
           super.method4();
        }
     }
    

    【讨论】:

      【解决方案3】:

      还有另一种方法,参考下面的例子:

                  package overridefunction;
                  public class SuperClass 
                      {
                      public void method1()
                      {
                          System.out.println("superclass method1");
                          this.method2();
                          this.method3();
                          this.method4();
                          this.method5();
                      }
                      public void method2()
                      {
                          System.out.println("superclass method2");
                      }
                      private void method3()
                      {
                          System.out.println("superclass method3");
                      }
                      protected void method4()
                      {
                          System.out.println("superclass method4");
                      }
                      void method5()
                      {
                          System.out.println("superclass method5");
                      }
                  }
      
              package overridefunction1;
                  public class SubClass extends SuperClass
                  {
                      @Override
                      public void method1()
                      {
                          System.out.println("subclass method1");
                          super.method1();
                      }
                  }
      
                  
                  package overridefunction1;
                  public class Demo 
                  {
                      public static void main(String[] args) 
                      {
                          SubClass mSubClass = new SubClass();
                          mSubClass.method1();
                      }
                  }
      
                  subclass method1
                  superclass method1
                  superclass method2
                  superclass method3
                  superclass method4
                  superclass method5
      

      【讨论】:

        猜你喜欢
        • 2020-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多