我在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)返回一个布尔值。即使我有断言语句,我仍然会遇到“向此测试用例添加至少一个断言”的问题。尽管这两个断言相似,但我觉得声纳可能会选择其中至少一个。

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

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;
 }


任何帮助,将不胜感激。

最佳答案

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

09-26 05:48