这是我的代码:
import java.net.URI;
import javax.ws.rs.core.UriInfo;
(...)
UriInfo mockUriInfo;
String url = "test";
mockUriInfo = mock(UriInfo.class);
when(mockUriInfo.getRequestUri()).then(new URI(url));
不幸的是,我有一个错误:
then(org.mockito.stubbing.Answer) cannot be applied to (java.new URI)
知道我该如何解决它吗?
真的,99%的时候都是错的。相反,使用真实对象或使用集成测试(使用RESTAssured或其他东西)会更好。
在mockito wiki上:不要模仿你不拥有的类型!
这不是一条强硬的线,但越过这条线可能会产生影响!(它很可能会。
相反,最常见的方法是围绕外部库/系统创建包装器,尽管人们应该意识到抽象泄漏的风险,其中太多的低级API、概念或异常超出了包装器的边界。为了验证与第三方库的集成,编写集成测试,并使它们尽可能紧凑和可读。
您需要使用thenReturn,而不是:
when(mockUriInfo.getRequestUri()).thenReturn(new URI(url));
如果你想使用那么(这是thenAnswer的同义词,你需要传递一个答案作为参数:
when(mockUriInfo.getRequestUri()).then(new Answer<Integer>() {
public URI answer(InvocationOnMock invocation) throws Throwable {
return new URI(url);
}
}
org.mockito.exceptions.misusing.invaliduseofmatchersexception:在此处检测到错误的参数匹配器:->at service.activity.service.activitesServiceTest.setup(activitesServiceTest.java:45) 不能在验证或短截之外使用参数匹配器。参数匹配器的正确用法示例:when(
单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。 懒汉式,线程不安全 当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样教我们的。 public
对于类中的方法,文档是这样说的: 取消此对话框,将其从屏幕上移除。可以从任何线程安全地调用此方法。请注意,当对话框被取消时,不应重写此方法来进行清理,而应在中实现此方法。 在我的代码中,我所做的就是调用来删除它。但是我没有做其他任何事情,甚至没有使用。因此,我问的是如何正确地删除以避免任何内存泄漏等。
问题内容: 我对ObjectMapper的工作方式和应用程序的一般使用感到满意。我想了解的是实现ObjectMapper的最佳方法,以确保其被重用并且不会在应用程序内创建不必要的实例? 我的想法是,可以在Utils类中声明ObjectMapper,如下所示: 然后,我可以在不同的地方使用诸如以下代码来引用: 我遇到了另一个问题(我应该将杰克逊的ObjectMapper声明为静态字段吗?),这促使我
问题内容: 在尝试学习TDD的过程中,尝试学习单元测试并在python中使用模拟。慢慢掌握它,但不确定我是否正确执行此操作。预先警告:由于供应商API是预编译的2.4 pyc文件,因此我正在使用python 2.4进行卡住,因此我正在使用模拟0.8.0和unittest(不是unittest2) 在“ mymodule.py”中给出此示例代码 现在在我的测试用例文件“ test_myclass.p
我有下面的打字稿类,我想测试在笑话。 这是我的测试: 如何模拟MyClass中使用的foo函数,以使测试通过?
问题内容: 我有一个复选框,可以切换某些行为,但是如果有人连续点击100次,我不想向服务器端发送100个请求。 到目前为止,这就是我所准备的(找到以下代码片段): 在我的文档准备功能中: 然后事件本身: 这是因为我将1500毫秒作为去抖动周期,所以如果您在1500毫秒内单击n次,它将仅向服务器发送最新状态。 但是,使用它会有副作用,现在我的其他事件的click事件被搞砸了。我在这里做错什么了吗?有
我发现其他人也有同样的问题,他们的问题通过在InputStreamReader构造函数中指定UTF-8来解决: 以UTF-8形式读取InputStream 这对我不起作用,我也不知道为什么。无论我尝试什么,我总是得到转义的unicode值(斜杠-U+十六进制),而不是实际的语言字符。我在这里做错了什么?提前道谢! 请注意:这不是字体问题。我之所以知道这一点,是因为如果我对同一个文件使用Resour