Closed
Description
Hi!
We notice that you use the loop structure in your test cases.
For example, testOracleJoin2_1() in SelectTest.java
However, using the loop in test cases is not a good test practice.
We analyzed the relevant Stack Overflow posts and summarized four potential negatives it brings:
- Loops make the test case more complex
- In most cases, a loop can be replaced with a data-driven test that is more readable.
- Loops break the assert-for-one-thing thumb rule. I don't mean a single assert statement.
- When a test fails, knowing the reason is more complicated.
Solution:
To avoid using the loop in the test, JUnit provides an annotation (i.e., @ParameteredTest), enabling a test case to run multiple times with different parameters.
@test
@ParameteredTest
@valuesource(Strings = {"(+)", "( +)", "(+ )", "( + )", " (+) "})
public void testOracleJoin2_1(String value) throws JSQLParserException {
assertSqlCanBeParsedAndDeparsed("SELECT * FROM tabelle1, tabelle2 WHERE tabelle1.a" + value + " = tabelle2.b", true);
}
Metadata
Metadata
Assignees
Labels
No labels