gpt4 book ai didi

java - 在方法内部测试方法的最佳方法是什么? (联合)

转载 作者:行者123 更新时间:2023-11-28 20:18:47 28 4
gpt4 key购买 nike

我有一个 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
}

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

最佳答案

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

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

要么构造函数调用这些方法,那么理想情况下它们应该是私有(private)的;或者它们是公共(public)的,但是调用它们不应该是构造函数的责任。

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

无论如何:当您保留当前设计时;没有别的办法,只能“多次”测试这些东西。你看:你的测试必须确保你的构造函数工作(不管那个 ctor 是否正在调用一些 m1()、m2() 或 m3();或者没有这些);但是你必须确保在类的现有实例上调用所有公共(public)方法也能正常工作!

最后:您不会调用您的方法,因为“它们存在”。每个方法都应该有一个明确的目的(又名契约);然后您编写测试用例以确保这些契约(Contract)得到遵守。

关于java - 在方法内部测试方法的最佳方法是什么? (联合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40932175/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com