需要帮助我对JUnit很陌生,我想为下面的方法创建一个JUnit测试用例,我想为下面的方法中定义为本地的webClient
传递值。所以我需要为webClient
传递值。请指导我如何为webClient
存根值?
@Autowired
@Qualifier("oauthproviders")
Map<String, WebClient> webClientList;
public static Map<String, String> mapClientAccounts = new HashMap<>();
public void callRemoteListenerService(final String uuid, final String userName,
final boolean mode, File file) throws FileNotFoundException {
WebClient webClient = webClientList.get(mapClientAccounts.get(userName));
logger.info("The list in webclients are: " + webClientList.keySet().toString());
// Some other code...
}
2条答案
按热度按时间bfrts1fy1#
第一:“下面的方法”,绝不“下面的方法”。
简短回答:
1.创建一个“webClientList”的模拟。
1.创建一个“mapClientAccounts”的模拟。
1.为“mapClientAccouns.get(userName)”调用创建一个模拟帐户以返回。
1.为“webClientList.get”调用创建一个mock WebClient以返回。
示例代码(基于一些假设):
oyt4ldly2#
假设包含此方法和2个map的类名为“TestedService”,您可以尝试以下操作:
请注意,
mapClientAccounts
是静态的,这将使测试变得更加困难。在这种情况下,我们很幸运,因为它是公共的,我们可以修改它以进行测试。尽管如此,如果可能的话,最好将其作为非静态参数使用,并将其作为构造函数参数传递。