У меня есть следующие правила:TestMethodWithoutAssertionOrExpectedException
[[junit4:C_TestMethodWithoutAssertion]]
.All Unit Tests must either use a expected Exception or call an Assert Method.
[source,cypher,role=constraint,requiresConcepts="junit4:TestClass,junit4:AssertMethod,junit4:TestMethod",severity=blocker]
----
MATCH
(testType:Type)-[:DECLARES]->(testMethod:Test:Method)
-[:ANNOTATED_BY]-(annotation:Annotation)-[:OF_TYPE]->(atype:Type)
WHERE
atype.fqn="org.junit.Test"
AND NOT testMethod.abstract
AND NOT (annotation)-[:HAS]->(:Value{name:"expected"})
AND NOT (testMethod)-[:INVOKES*..3]->(:Method:Assert)
RETURN
testType AS DeclaringType,
testMethod AS Method
----
, если я использую его в Neo4j браузере, правило работает отлично. Но если я использую его для отчета в файле adoc, я получаю много «FalsePositives». У кого-нибудь есть идея.
LG Chris
Обратите внимание, что «ожидается» значение аннотации может быть переработан в другую концепцию, создавая связь между методом испытания и ожидаемым типом исключения. –
Я изменил его на AND NOT (имеет (testMethod.abstract) AND testMethod.abstract), и теперь он работает. Thanx – idefixcert
Обновлен ответ соответственно. –