我在使用Mockito进行单元测试初始化对象时遇到了一些困难
这是我的测试代码
@RunWith(SpringJUnit4ClassRunner.class)
class AreaControllerTest {
@Mock
CalculateArea calculateArea;
@InjectMocks
AreaController areaController;
MockMvc mockMvc;
@Before
public void init()
{
mockMvc = standaloneSetup(areaController).build();
}
@Test
void calculateArea() throws Exception{
Mockito
.when(calculateArea.calculateArea(Type.RECTANGLE, 5.0d, 4.0d))
.thenReturn(20d);
mockMvc.perform(
MockMvcRequestBuilders.get("/api/area?type=RECTANGLE¶m1=5¶m2=4")
)
.andExpect(status().isOk())
.andExpect(content().string("20.0"));
}
}
要测试的代码
@Component
public class CalculateArea {
@Autowired
SquareService squareService;
@Autowired
RectangleService rectangleService;
@Autowired
CircleService circleService;
public Double calculateArea(Type type, Double... r )
{
switch (type)
{
case RECTANGLE:
if (r.length >= 2) {
return rectangleService.area(r[0], r[1]);
} else {
throw new RuntimeException("Missing required params");
}
case SQUARE:
if (r.length >= 1) {
return squareService.area(r[0]);
} else {
throw new RuntimeException("Missing required param");
}
case CIRCLE:
if (r.length >= 1) {
return circleService.area(r[0]);
} else {
throw new RuntimeException("Missing required param");
}
default:
throw new RuntimeException("Operation not supported");
}
}
}
RecTangleService、CircleService和SquareService用注释org.springframework.stereotype.Service
注释我尝试了很多选项,最终得出结论。我没有得到我错在哪里。我试着在网上搜索了很多地方,但找不到任何帮助。
我认为你需要换一个跑步者。考虑到您使用的是SpringJUnit4ClassRunner,看起来您使用的是JUnit4。您应该能够简单地替换
@RunWith(SpringJUnit4ClassRunner.class)
与
@RunWith(MockitoJUnitRunner.class)
有许多方法可以使用mockito初始化模拟对象。其中什么是最好的方法? 1. 建议我有没有比这些更好的方法...
问题内容: 有很多方法可以使用MockIto初始化模拟对象。其中最好的方法是什么? 1。 2。 [编辑] 3。 如果有其他方法可以建议我… 问题答案: 对于模拟初始化,使用或是严格等效的解决方案。从MockitoJUnitRunner的javadoc中: 当你已经在测试用例上配置了特定的运行器时,可以使用第一个解决方案(带有)。 第二个解决方案(带有)更经典,也是我的最爱。代码更简单。使用转轮提供
我预计Spring会通过将属性“property.key”设置为“property_value”来初始化StorageConfiguration对象。 但是,我得到以下异常 org.springframework.beans.factory.beanCreationException:创建类路径资源[applicationContext.xml]中定义的名为“storage”的bean时出错:在设
我想使用“=”符号初始化MyClass的对象。 例如。字符串a=“你好”; 我想做 这是我用构造函数写的类
问题: 我正在为我的一个spring批处理作业方法编写单元测试。我使用mockito来模拟我的批处理作业依赖关系。在jobExecution发挥作用之前,一切都很好。我要测试的方法调用了jobExecution变量,但它给了我NPE(NullPointerException)并且我没有成功地用mockito模拟它。 删除此currentJobExecution时 从我要测试的方法,然后测试成功完成