Java 当我想测试一个复杂的方法时,mockito是否存储操作
我是莫基托的新手。这是一个简单而酷的框架(它让我喜欢测试:)) 我正在测试一个复杂的方法: 在这个方法中,我只在数据更改时调用服务Java 当我想测试一个复杂的方法时,mockito是否存储操作,java,unit-testing,mockito,Java,Unit Testing,Mockito,我是莫基托的新手。这是一个简单而酷的框架(它让我喜欢测试:)) 我正在测试一个复杂的方法: 在这个方法中,我只在数据更改时调用服务 public void testMyFacadeMethod() { .... If (dataChanged) { myService.callServiceMethod(); } } 在我的测试方法中:我准备模拟,然后更改数据并调用 verify(myService).callServiceMethod();
public void testMyFacadeMethod() {
....
If (dataChanged) {
myService.callServiceMethod();
}
}
在我的测试方法中:我准备模拟,然后更改数据并调用
verify(myService).callServiceMethod();
一切正常,我的考试通过了。
在同一个测试方法中,我调用了facadeMethod,因此不能调用myService.callServiceMethod(因为我的数据没有改变)。
测试失败:
verify(myService).callServiceMethod();
myFacadeMethod() <== tested method
verify(myService, times(0)).callServiceMethod(); <= tell me that this method is called once
verify(myService.callServiceMethod();
myFacadeMethod()是,Mockito不会自动重置方法调用的次数。
您可以使用Mockito.reset(T)
重置模拟
但是,您应该尽量避免使用这种方法。如果测试代码是智能的,那么它通常是不必要的,因此它的存在可能表明代码的气味。看见
是的,Mockito不会自动重置方法调用的数量。
您可以使用Mockito.reset(T)
重置模拟
但是,您应该尽量避免使用这种方法。如果测试代码是智能的,那么它通常是不必要的,因此它的存在可能表明代码的气味。看见
是的,Mockito不会自动重置方法调用的数量。
您可以使用Mockito.reset(T)
重置模拟
但是,您应该尽量避免使用这种方法。如果测试代码是智能的,那么它通常是不必要的,因此它的存在可能表明代码的气味。看见
是的,Mockito不会自动重置方法调用的数量。
您可以使用Mockito.reset(T)
重置模拟
但是,您应该尽量避免使用这种方法。如果测试代码是智能的,那么它通常是不必要的,因此它的存在可能表明代码的气味。看见
您可以使用Mockito.reset
重置模拟。但是,最好更改测试的设计。您应该有两个单独的测试,每种情况一个,并且应该在每个测试之前创建新的模拟
大概是这样的:
@Before
public void setup() {
// create a myService mock
}
@Test
public void testMyFacadeMethodWithDataChange() {
// change data, call tested method
verify(myService).callServiceMethod();
}
@Test
public void testMyFacadeMethodWithoutDataChange() {
// no data change, call tested method
verify(myService, times(0)).callServiceMethod();
}
您可以使用Mockito.reset
重置模拟。但是,最好更改测试的设计。您应该有两个单独的测试,每种情况一个,并且应该在每个测试之前创建新的模拟
大概是这样的:
@Before
public void setup() {
// create a myService mock
}
@Test
public void testMyFacadeMethodWithDataChange() {
// change data, call tested method
verify(myService).callServiceMethod();
}
@Test
public void testMyFacadeMethodWithoutDataChange() {
// no data change, call tested method
verify(myService, times(0)).callServiceMethod();
}
您可以使用Mockito.reset
重置模拟。但是,最好更改测试的设计。您应该有两个单独的测试,每种情况一个,并且应该在每个测试之前创建新的模拟
大概是这样的:
@Before
public void setup() {
// create a myService mock
}
@Test
public void testMyFacadeMethodWithDataChange() {
// change data, call tested method
verify(myService).callServiceMethod();
}
@Test
public void testMyFacadeMethodWithoutDataChange() {
// no data change, call tested method
verify(myService, times(0)).callServiceMethod();
}
您可以使用Mockito.reset
重置模拟。但是,最好更改测试的设计。您应该有两个单独的测试,每种情况一个,并且应该在每个测试之前创建新的模拟
大概是这样的:
@Before
public void setup() {
// create a myService mock
}
@Test
public void testMyFacadeMethodWithDataChange() {
// change data, call tested method
verify(myService).callServiceMethod();
}
@Test
public void testMyFacadeMethodWithoutDataChange() {
// no data change, call tested method
verify(myService, times(0)).callServiceMethod();
}