我的代码:
public class MealTransformerTest {
MealTransformer mealTransformer = new MealTransformer();
@Test(expectedExceptions = NotImplementedException.class)
public void shouldThrowException() throws NotImplementedException {
mealTransformer.transform(any(),
any(),
any(),
any());
}
}在这个特定的测试中没有失败,但是当我运行这个套件时,Mockito会告诉我不正确使用匹配器的情况。
我也可以做一些类似的事情:
public class MealTransformerTest {
MealTransformer mealTransformer = new MealTransformer();
//I don't need it in the tests. But I need at least 1 @Mock or @Spy to trigger framework validation
@Mock
private CloneUtils cloneUtils;
@BeforeMethod
void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test(expectedExceptions = NotImplementedException.class)
public void shouldThrowException() throws NotImplementedException {
mealTransformer.transform(any(),
any(),
any(),
any());
}
@Test(expectedExceptions = NotImplementedException.class)
public void shouldThrowException123() throws NotImplementedException {
mealTransformer.transform(any(),
any(),
any(),
any());
}
}
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Misplaced argument matcher detected here:
....
匹配器通过副作用和静态全局状态工作,所以您可以将这个调用分解成几个部分来查看发生了什么。
MockitoAnnotations.initMocks(this);
// in @Before [1]
mealTransformer.transform(any(), any(), any(), any());
// [6] [2] [3] [4] [5]
在init[1]之后,Java会看到四个对any
[2-5]的调用和一个对transform
[6]的调用。但是,Mockito只看到对Any
的四个调用;因为mealtransformers
不是mock,Mockito看不到它的调用。如果您单独运行该测试,Mockito将剩下四个记录的匹配器,这些匹配器没有被消耗。JVM将拆除测试框架,测试将通过-除非在@after
方法中调用validateMockitousage
,该方法将准确地捕捉到这种情况。
然而,当您有两个测试时,它们是这样叠加的:
MockitoAnnotations.initMocks(this);
// [1]
mealTransformer.transform(any(), any(), any(), any());
// [6] [2] [3] [4] [5]
// test passes! now the next test
MockitoAnnotations.initMocks(this);
// [7]
mealTransformer.transform(any(), any(), any(), any());
// [12] [8] [9] [10] [11]
我在JavaFX应用程序上通过hibernate-validation使用Java Beans验证,因此,没有框架来帮助连接。我将这些依赖项添加到我的项目中: 我发现这可以使<code>modelObject</code>得到验证: 我的问题是,每次验证时都创建一个新的工厂和验证器不好吗?我应该将它们缓存在某个地方并重复使用它们吗?验证器有多昂贵和多线程?
是否可以在没有实体的情况下使用JpaRepository?在这种情况下,将其替换为DTO。 如下示例所示 这种情况有替代方案吗? 注意:DTO已经映射,但我不想创建视图来将此DTO转换为实体。 我已经验证了这个主题,但没有重大进展,请使用无实体的JpaRepository交互样式 我在试这个 接口- 公共接口BffDTOInterface2{ } 我有这个错误
问题内容: 我刚刚开始使用Python,我想知道如何在不需要框架的情况下对Web应用程序进行编程。我是一位经验丰富的PHP开发人员,但是我有尝试Python的冲动,而且我通常喜欢从头开始编写,而没有受到flask和django等框架的限制。 问题答案: WSGI是Web服务器接口的Python标准。如果要创建自己的框架或在没有框架的情况下运行,则应进行研究。特别是,我发现Ian Bicking的D
我想使用并使其直接进入给定的url,而不是从ribbon配置中获取主机。 我知道在Spring,cloud-feign默认与ribbon和eureka一起出现。 根据这个:https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html#spring-cloud-ribbon-without-eure
我看到的所有解决方案都需要使用。但是,我想在Eclipse之外的单个文件上使用CDT解析器。那有什么办法吗?
在Spring Boot的文档中,我只找到了使用Redis会话的例子,不使用Redis也能使用它吗?