当前位置: 首页 > 知识库问答 >
问题:

更改TestNG,NullPointerException上的JUnit

闻昊英
2023-03-14

我尝试将项目中的测试框架从JUnit改为TestNG。测试控制器代码正常工作:

@RunWith(SpringRunner.class)
@ContextConfiguration(classes = {DependencyReportController.class, DependencyReportControllerTest.SecurityPermitAllConfig.class})
@WebMvcTest(controllers = DependencyReportController.class)

public class DependencyReportControllerTest {
    @Autowired
    private MockMvc mockMvc;

    @MockBean
    private DependencyDifferenceService differenceService;

    @Before
    public void before() {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void test() throws Exception {
        ServiceDependenciesReport report = new ServiceDependenciesReport();
        report.setElapsed("elapsed");
        report.setSuccess(true);

        List<ByService> byServices = new ArrayList<>();
        byServices.add(new ByService("service1", new ArrayList<>()));
        byServices.add(new ByService("service2", new ArrayList<>()));
        byServices.add(new ByService("service3", new ArrayList<>()));

        report.setByServices(byServices);
        when(differenceService.getAllDiffs()).thenReturn(report);

        this.mockMvc.perform(get("dependencies/difference")).andExpect(status().isOk())
            .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON_UTF8_VALUE))
            .andExpect(jsonPath("$.success", is(true)))
            .andExpect(jsonPath("$.byServices", hasSize(1)))
            .andExpect(jsonPath("$.byServices[0].serviceName", is("service1")))
    }

    @Configuration
    public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().anyRequest().permitAll()
                .and().csrf().disable();
        }
    }    
}

正如我所知,在testNg中,我应该从AbstractTestNGSpringContextTest扩展测试类,并用@RunWith(SpringRunner.class)删除行:

    @ContextConfiguration(classes = {DependencyReportController.class, DependencyReportControllerTest.SecurityPermitAllConfig.class})
    @WebMvcTest(controllers = DependencyReportController.class)

        public class DependencyReportControllerTest extends AbstractTestNGSpringContextTest {
            @Autowired
            private MockMvc mockMvc;

            @MockBean
            private DependencyDifferenceService differenceService;

            @BeforeTest
            public void before() {
                MockitoAnnotations.initMocks(this);
            }
...
...

我做错了什么?

共有1个答案

伯彦君
2023-03-14

添加批注@TestExecutionListeners(MockitoTestExecutionListener.class)

 类似资料:
  • 我有2个控制器和3个fxml文件。 1。控制器: MainController.java 在这个控制器中,我使用BorderPane创建舞台和场景。在BorderPane的中心,我想改变布局(GridPane,HBox等) java 在SecondController中,我想用帮助RadioButton更改borderPane MainController的中心。 2。fxml-file: 0.b

  • 我是的新手,并编写了以下代码以从组中获取参数。 跳过:testMethodA java.lang.NullPoInterException(位于org.testng.internal.methodInvocationHelper.InvokedDataProvider(MethodInvocationHelper.java:151)(位于org.testng.internal.parameters

  • 问题内容: 我正在尝试根据此教程在我的应用程序中实现NotificationListenerService:http : //www.kpbird.com/2013/07/android- notificationlistenerservice.html ,但是调用getActiveNotifications时出现NullPointerException。 我正在向该服务发送广播,该广播应生成所有

  • 问题内容: 我在课堂上有这种方法(不活动)- 但是当我从其他活动中调用此方法时,我会在线获取NullPointerException- 这是我的LogCat- 我知道以前曾问过这种类型的问题,但给出的解决方案没有用。关于如何解决它的任何想法? 编辑 构造函数- 和类- 问题答案: 由于不是活动的类正在触发NullPointerException,因为它没有获取上下文来打开数据库。 使用上下文打开数

  • 我试图根据以下教程在应用程序中实现NotificationListenerService:http://www.kpbird.com/2013/07/android-NotificationListenerService.html,但在调用GetActiveNotifications时出现了NullPointerException。 我正在向服务发送广播,该服务将生成所有通知的列表:

  • 我目前正在构建一个Maven项目,其中也包括Eclipse中的TestNg库。我使用最新的Selenium版本3.8.1运行在Java 8上(从Java 9切换过来,因为我听说这会导致其他版本的问题)。我的项目运行顺利,没有任何问题,测试运行良好,然后它开始抛出< code > NullPointerException s。我尝试再次构建项目,但没有成功。 这是我的设置: 下面是TestBase类