gpt4 book ai didi

java - 创建第 3 方 Java 库的 stub

转载 作者:行者123 更新时间:2023-11-29 08:41:50 25 4
gpt4 key购买 nike

我的任务是为我们的应用程序将调用的第 3 方 Java 库创建 stub 。我的问题是如何定义方法“返回类型”的类(如果这是正确的 Java 术语)。我无法访问第 3 方 API 的完整文档,只能访问方法列表。现在,我的 stub 只需要返回 true/false 或 1/0,随便什么

这里有一个例子来说明一种方法。这是我得到的

OobResponse RequestOobRequest(
String ClientName,
String SecurityLink,
short LenofHHU,
RequestMode RequestMode)

我不知道 OobResponse 或 RequestMode 应该是什么,但我应该仍然能够创建 stub ,对吧?

到目前为止,这就是我所有的。

public class stubber {

public class OobResponse {
public int someVar;
}
public class RequestMode {
public int someVar;
}

public OobResponse RequestOobRequest(
String ClientName,
String SecurityLink,
short LenofHHU,
RequestMode RequestMode)
{
OobResponse oobr = new OobResponse();
return oobr;
}
}

最佳答案

您的文档很奇怪,因为变量和方法名称不符合使用驼峰命名法的 Java 约定。此外,您似乎被命令做的事情将在以后使用最少。但是,按照我理解您的问题的方式,您可以这样做:

  • 为您将 stub 的所有类创建新包。稍后会有相关内容
  • 实际上 stub 的东西。也就是说,对于文档中未内置到 java 中的每个类,都创建该类。我假设你写的是一个方法声明(对我来说最有意义,尽管它也可以是构造函数或其他),它需要是某个类的一部分,我在下面称它为“未知”。将该名称替换为实际的类名。

对于您的示例,您需要:

public class RequestMode {

}

public class OobResponse {

}

public class Unknown {

public OobResponse RequestOobRequest(
String ClientName,
String SecurityLink,
short LenofHHU,
RequestMode RequestMode){
return new OobResponse(); // or null, whatever since it is a stub
}
}

请注意,在进行 stub 时,您不会创建任何其他变量(例如您尝试添加的 someVar),只有 API 允许您访问(只有其中的类和公共(public)方法是一个很好的规则一个拇指)。您也可以使用接口(interface)而不是类,这样会更简洁,但有正当理由不这样做(例如,当您希望使用 new StubbedClass() 编译代码时)。

现在,在您的实际代码中,您(或其他人)将能够像使用实际库一样使用您的 stub :

public class YourBusinessClass{

public OobResponse getOobByClientName(String clientName){
return new Unknown().RequestOobRequest(clientName,...);
}

}
  • 当您获得实际的库时,您可以将使用它的实际代码中的 stub 包的导入替换为实际的库包。

这是我能想到的唯一有用的使用 stub 的方法,所以我希望这是你想要的。

关于java - 创建第 3 方 Java 库的 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39596350/

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