我在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;
}
任何帮助,将不胜感激。
最佳答案
尝试更新插件版本。对我有用