我有一个抽象基类,用作我的单元测试(TestNG
5.10)的基础。在该类中,我将初始化测试的整个环境,设置数据库映射等。此抽象类具有一个带有@BeforeClass
注释的方法,该方法可以进行初始化。
接下来,我用具有@Test
方法和@BeforeClass
方法的特定类扩展该类。这些方法对环境进行类特定的初始化(例如,将一些记录放入数据库中)。
如何执行带@BeforeClass
注释的方法的特定顺序?我需要先执行抽象基类中的那些,然后再执行扩展类中的那些。
例:
abstract class A {
@BeforeClass
doInitialization() {...}
}
class B extends A {
@BeforeClass
doSpecificInitialization() {...}
@Test
doTests() {...}
}
预期订单:
A.doInitialization
B.doSpecificInitialization
B.doTests
实际订单:
B.doSpecificInitialization // <- crashes, as the base init is missing
(A.doInitialization // <---not executed
B.doTests) // <-/
不要把@BeforeClass
上的abstract
类。从每个子类调用它。
abstract class A {
void doInitialization() {}
}
class B extends A {
@BeforeClass
void doSpecificInitialization() {
super.doInitialization();
}
@Test
void doTests() {}
}
好像TestNG一样@BeforeClass(dependsOnMethods={"doInitialization"})
-试试看。
这是另一堂课 和TESTNG XML-------- 当我在testNG中运行上述XML时,它没有执行@BeforeCLass和@AfterClass方法。它将输出显示为- [RemoteTestNG]在Open Test Test ONE中检测到TestNG版本7.2.0
我在Java实践继承,面临以下问题: 父类的代码: 子类代码: 两者是分开的。java文件。当我尝试执行父类文件时,它可以工作,但由于某些原因,我甚至无法运行子类。这里有以下信息: 该文件于2月8日发布。java不是可执行的。请选择要运行的主类 我该如何解决这个问题?
问题内容: 考虑下面的代码 基于我对类成员初始化和构造函数执行顺序的理解。我期望输出是 因为我相信类成员甚至在调用main方法之前就已初始化。但是当我运行程序时,我得到以下输出 我的困惑是,尽管Meal()Lunch()和PortableLunch()在Bread()Cheese()和Lettuce()之前运行,即使它们的构造函数被调用。 问题答案: 这些是实例字段 它们仅在创建实例时存在(执行)
FAQs in section [24]: [24.1] 如何表示“私有继承”? [24.2] 私有继承和组合(composition)有什么类似? [24.3] 我应该选谁:组合还是私有继承? [24.4] 从私有继承类到父类需要指针类型转换吗? [24.5] 保护继承和私有继承的关系是什么? [24.6] 私有继承和保护继承的访问规则是什么? 24.1 如何表示“私有继承”? 用 : priv
本文向大家介绍Python多重继承的方法解析执行顺序实例分析,包括了Python多重继承的方法解析执行顺序实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python多重继承的方法解析执行顺序。分享给大家供大家参考,具体如下: 任何实现多重继承的语言都要处理潜在的命名冲突, 这种冲突由不相关的祖先类实现同名方法引起 这里B和C都实现了eat方法, 在 D 的实例上调用 d.eat(
假设以下代码段使用@PrePersist和@PreUpdate注释并连接了类型继承: 问题:我们可以依赖回调方法的任何执行顺序吗? 例如,当持久化类A和B时,B中的prePersist方法会在A中的prePersist方法之前执行还是在A中的prePersist方法之前执行? 我们可以假设B中的prePersist将在类A被持久化之前执行吗?