Наш проект использует assert методы из библиотеки assertj, а также в некоторых методах модульного тестирования. Таким образом, текущее правило шифра для поиска метода assert не идентифицирует методы assert, как показано ниже, и помечает их как нарушения.
assertThat ( "х") isEqualTo ( "Y"). в методах модульного тестирования.
как изменить скрипт, чтобы он учитывал любые вызовы "assert *" из метода модульного теста.
<cypher><![CDATA[
MATCH
(c:Type:Class)-[:DECLARES]->(m:Method:JunitTestMethod),
(m)-[:INVOKES*..10]->(assert:Method)
WHERE
assert.signature =~ "void assert.*"
OR assert.signature =~ "void fail.*"
OR assert.signature =~ "void verify.*"
SET
m:JunitTestWithAssert
RETURN
c.fqn AS TestClass, m.name AS TestMethodWithAssert
]]></cypher>
Образец метода испытаний:
@Test
public void testAssertWithDiffLibrary() {
String testName = "Hello";
assertThat(testName).isEqualTo("Hello");
}
Примечание. Попытка добавить предложение where "OR assert.name = ~". assert."", но не обнаруживает эти утверждения.