【问题标题】:JMockit With Chain Methods带有链式方法的 JMockit
【发布时间】:2020-11-12 18:40:18
【问题描述】:

我很难理解如何使用 Jmockit 正确模拟链方法

所以这是我想要测试的链式方法的示例

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

我目前的理解是手动指定期望中的每个方法并返回一个模拟。然后为每个步骤执行此操作。如下所示

new Expecations(){
http.authorizeRequest()
result = mockedRequests;

mockedRequest.anyRequest()
results = mockedAnyRequest;

//etc


}

我的问题是有更好的方法吗?我觉得这是一个简单测试的很多额外代码。 P.S 这是针对 JMockit 1.8 的

【问题讨论】:

    标签: java testing mocking jmockit chain


    【解决方案1】:

    好吧,这里有一个简单的测试,它将运行代码并为您提供完整的覆盖范围。

    @Test
    public void testConfigure(
        @Mocked final HttpSecurity http)
        throws Exception
    {
        config.configure(http);
    }
    

    也就是说,如果您需要执行更多奇特的操作,例如调用确认“禁用”或调用顺序(这在实现方面很重要),则此测试无法(轻松)执行。去那里,你最终会像你展示的那样建立那些链——PITA。如果有人想要这样更高程度的测试,我认为这将是更高级别的系统或集成测试的工作,而不是单元测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-13
      • 2016-03-05
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      相关资源
      最近更新 更多