我的一个Spring Boot控制器方法调用静态方法。我想使用powermokito测试控制器。请在下面找到相同的代码。我尝试调用mockMvc时出错。perform()方法@RunWith(PowerMockRunner.class)
@PrepareForTest({StaticClass.class})
public void StaticClassTests()
{
@Autowired
private MockMvc mockMvc;
@Test
public void testStatic()
{
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
PowerMokito.when(StaticClass.getList()).thenReturn(list);
RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/getlist")
.accept(MediaType.APPLICATION_JSON);
MvcResult result = mockMvc.perform(requestBuilder) //where the error is
.andExpect(status().isOk())
.andExpect(content().json("[\n" +
" \"a\",\n" +
" \"b\",\n" +
" \"c\"\n" +
"]"))
.andReturn();
}
}
静态类。getList()是一个获取java的静态方法。注释行处的lang.NullPointerException(即mockMvc.perform(requestBuilder))
在调用perform方法之前,应该初始化mockMvc。
// Setup Spring test in standalone mode
this.mockMvc = MockMvcBuilders.standaloneSetup(carSearchController).build();
注意:像这里为CarSearchController所做的那样注入控制器
@InjectMocks
private CarSearchController carSearchController;
在安装到AEM 5.6.1实例之前,我正在使用maven构建和测试我的代码。我已经编写了单元测试,这些测试使用wcm的实现从aem模拟中获益。io和其他需要使用powermockito模拟静态方法的单元测试。 以下是我对aem上下文、sling Mock和powermock的maven依赖关系。 在我的课堂上,我正在为aem上下文设置规则,并准备一些用于模拟的静态类: 当我通过命令行运行mvn测试
问题内容: 我的代码中有一个静态方法,希望以某种方式进行模拟。 我正在使用jmock。 我想可以做到这一点的一种方法是在静态方法周围设置“包装类”并模拟该方法,但是我希望有一个更好的解决方案。 我要用这种错误的方式? 反馈: 我将要有一个接口和一个类,该接口和类具有一个仅称为静态方法的方法。这将允许我通过仅模拟对此包装器类的调用来模拟逻辑。(即使谈论它我也觉得很脏:)) 问题答案: 我们不支持在j
问题内容: 我已经写了一家工厂来生产物体: 我想验证传递给的参数,但不知道如何模拟静态方法。我在测试用例中使用的是和。有没有模拟或验证此特定用例的好方法? 问题答案: 在Mockito上使用PowerMockito。 示例代码:
例如,我有以下课程: 我有一个类使用她的方法: 测试等级: 尝试运行测试时遇到的错误: 组织。莫基托。例外情况。基础MockitoException:对于TesteStatico,静态模拟已在当前线程中注册以创建新的模拟,必须取消注册现有的静态模拟注册 项目中LIB的版本: junit-jupiter 5.5.2 mockito-junit-jupiter 3.2.14 mockito-内联3.2
我在一个类中有一个静态方法。方法不是最终的。我一直得到一个when()需要一个参数,该参数必须是'a method call on a mock‘错误。下面是我的代码。
我正在尝试使用JUnit、Mockito和PowerMock验证对的调用。 下面是我的测试用例: 下面是测试中的代码: 非常有趣的是,这段代码失败时出现: