有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在方法内部测试方法的最佳方法是什么?(朱尼特)

我有一个Java类a。a的构造函数调用了几个方法m1,m2

class A{

    public A(){
        m1(); 
        m2();
    ...... }

    public void m1(){...};
    public void m2(){...};
}

如何为这些方法编写测试?我通常把它们写成

class TestClass{

static A a = null;

public TestClass(){
    a = new A();
}

@Test
public testm1(){
   A.m1();
   //Some logic
}

但是,这些函数是在构造函数本身中调用的。看起来我执行了两次方法来检查,如果方法写得不正确,构造函数本身就会失败。正确的测试方法是什么


共 (1) 个答案

  1. # 1 楼答案

    首先,你的界面看起来很奇怪

    你看,让一个公共方法调用另一个公共方法没有多大意义。所以这里的real问题正是您所描述的:您的构造函数正在调用m1和m2方法

    要么构造函数调用这些方法,那么理想情况下它们应该是私有的;或者它们是公共的,但不应该由构造器负责调用它们

    从这个意义上说:答案是退后一步,仔细审视你设计的这一方面;如果可能的话,改变它

    在任何情况下:当您保持当前设计时;除了“多次”测试这些东西之外,别无其他方法。你看:你的测试必须确保你的构造函数工作(不管这个构造函数是调用一些m1()、m2()还是m3();或者这些都没有);但是,您必须确保在类的现有实例上调用所有公共方法也有效

    最后:你不调用你的方法,因为“它们存在”。每种方法都应该有明确的目的(又名合同);您编写测试用例以确保这些合同得到履行