gpt4 book ai didi

java - 仅在测试时运行代码

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

我只想在测试运行时执行一个方法。

这是一个集成测试的完成。当我运行集成测试时,我想生成一个包含对象状态的 json 文件。

我想在我的代码中做这样的事情:

if(environnement == TEST) {
// save object as json
}

你知道其他方法吗?少废话?

问候

最佳答案

我通常使用这种模式提供测试“ Hook ”

public class MyObject {

public void doStuff() {
// stuff to do

onCompleteStuff();
}

protected void onCompleteStuff() {
}
}

然后在测试代码中,您可以创建一个 MyObject 的子类来执行您的仅测试操作:

private MyObject newMyObject() {
return new MyObject() {
@Override
protected void onCompleteStuff() {
saveObjectAsJson();
}
};
}

这样做的好处是将测试代码保留在主构建之外。如果您必须在测试中使用模拟,它也会起作用。例如,使用优秀的 Mockito 库:

MyObject foo=Mockito.spy(new MyObject());

doAnswer(new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
saveObjectToJson();
return null;
}
}).when(foo).onCompleteStuff();

关于java - 仅在测试时运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29164706/

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