gpt4 book ai didi

Java - 契约(Contract)测试

转载 作者:行者123 更新时间:2023-11-30 06:29:46 28 4
gpt4 key购买 nike

我正在尝试为一些广泛使用的接口(interface)编写契约(Contract)测试:

沿着:

public abstract class MyInterfaceContractTest extends TestCase {

private MyInterface _toTest;

public void setUp(){
_toTest = getTestableImplementation();
}

protected abstract MyInterface getTestableImplementation();

public void testContract(){

}
}

...和...

public class MyInterfaceImplementationTest extends MyInterfaceContractTest {

protected MyInterface getTestableImplementation(){
return new MyInterfaceImplementation(...);
}
}

但是,我希望能够测试 MyInterfaceImplementation 的多个实例。在我的用例中,这是一个包含数据集合的不可变对象(immutable对象)(具有根据接口(interface) MyInterface 指定的访问器),它可能是空的,或者有少量数据,甚至很多的数据。

所以问题是,我如何测试我的实现的多个实例?

目前,我必须初始化实现以将其传递到抽象合约测试中。一种方法是为每个实现设置多个测试类,其中每个测试类测试该实现的一个特定实例 - 但这看起来有点冗长且难以跟踪。

FWIW,我正在使用 JUnit 3。

最佳答案

通常,方法是使用抽象类的“可测试”子类在一次测试中测试抽象类的所有功能。然后为每个具体实现编写单独的测试,只测试具体类中定义/实现的方法(不要重新测试具体类中的功能)。

关于Java - 契约(Contract)测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11157042/

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