小编fir*_*lud的帖子

詹金斯:“从阶段重新启动”在我的管道 UI 中不可用

我正在研究从中间失败的阶段重新启动詹金斯管道的能力(例如)。

我继承了这个 CI 服务器并负责更新它,所以我发现这个功能可以“从阶段重新启动”:https : //jenkins.io/doc/book/pipeline/running-pipelines/#restart-from-a-stage

但是,我没有在 jenkins UI 上看到这个按钮。我猜这是因为我的 jenkins 版本太旧了。

这是我服务器上的一些信息:Jenkins 版本。2.107 插件信息:管道 - 2.5

如果有帮助,我可以分享其他插件信息。

问题:1)我需要做什么才能从舞台功能重新启动?2) 下次我怎样才能知道我需要什么版本才能获得某些新功能(如果这是根本原因)?

jenkins jenkins-pipeline

3
推荐指数
1
解决办法
4359
查看次数

Mockito:监视被测系统中依赖于 HTTP 请求的方法是不是一种不好的做法?

通过阅读周围的内容,当您必须监视您正在单元测试的当前方法所使用的方法时,这通常是不好的做法,并且是代码异味的迹象。

例如,我有一个正在单元测试的方法:

public MyResponseObject doStuff(MyRequestObject obj) {
    WebTarget tar = getServiceClient().target(obj.toString());
    Response res = tar.path(someURI).request().post(somejson);
    if(response.getStatus() == 200) {
        String jsonResp = response.readEntity(String.class);
        return convertToObj(jsonResp);
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试解决上述问题的一种方法是

  1. 将前两行(WebTarget、Response)提取到其自己的方法中,该方法返回 Response 对象。
  2. 创建 Response 的模拟并存根 readEntity 以返回 200 并存根 readEntity 以返回“OK”

结果如下:

public MyResponseObject doStuff(MyRequestObject obj) {
    Response res = sendRequest(obj.toString());
    if(response.getStatus() == 200) {
        String jsonResp = response.readEntity(String.class);
        return convertToObj(jsonResp);
    }
}

//extracted method
public Response sendRequest(String json){
    WebTarget tar = getServiceClient().target(someUrl);
    return res = tar.path(someURI).request().post(somejson);
}

//My unit test …
Run Code Online (Sandbox Code Playgroud)

java testing unit-testing mockito

0
推荐指数
1
解决办法
3453
查看次数