java - SonarQube 针对 junit 和 Mockito 问题“向此测试用例添加至少一个断言”

标签 java junit sonarqube mockito assertions

我在使用 SonarQube 时遇到问题,引发了我的几个单元测试的问题,从而引发了以下问题:

@InjectMocks
private MessageEscaper escaper;
@Mock
private SLogger mockLogger;

@Mock
private Messagetext mocktext;

 @Before
public void setup() throws Exception {
    escaper = new MessageEscaper ();
    MockitoAnnotations.initMocks(this);

}


 @Test
public void Message() {

    assertTrue(escaper.handleText(mockText));
    verify(mockLogger).logMessage(mockText);
    assertEquals(true, escaper.handleText(mockText));

}

escaper.handleText(mockText) 返回一个 boolean 值。即使我有断言语句,我仍然遇到一个问题“向此测试用例添加至少一个断言”。虽然这两个断言语句很相似,但我觉得 Sonar 可能至少会选择其中一个。

这是获得实际调用的方法。

public boolean handleText(MessageText text)
{                                
  try {
     Message message = context.getMessage();
     String serviceName = Util.getServiceName(message);
     text.put(MESSAGE_OPERATION, serviceName);
  } catch (CustomException | RuntimeException e) {
     if (LOG.isLoggable(Level.ERROR)) {
        LOG.warning("Unable to store : " + UtilLog.print(e));
     }
  }
  return true;
 }

如有任何帮助,我们将不胜感激。

最佳答案

尝试更新插件版本。对我有用

关于java - SonarQube 针对 junit 和 Mockito 问题“向此测试用例添加至少一个断言”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46939665/

相关文章:

sonarqube - 可以并行化 SonarQube 后台任务吗?

java - 线程 "main"java.lang.UnsupportedClassVersionError : org/sonarsource/scanner/cli/Main : Unsupported major. 次要版本 52.0 中的 Jenkins 异常

java - 为什么子类可以通过内部类访问父类(super class)的私有(private)成员?

java - 使用 lambda 过滤嵌套列表

java - Hibernate sql语句中多对多语法错误

java - Hibernate + JUnit 多线程综合测试

java - 为什么 JUnit 5 Suite 注释 @SelectClasses 和 @IncludeClassNamePatterns 无法找到不以 "Tests"或 "Test"结尾的测试?

java - Play 2.0 并未运行所有测试

java - 为什么我会收到 NullPointerException?

java - 使用 Scala 中的原始类型实现 Java 接口(interface)