ਇਹ ਟਿਊਟੋਰਿਅਲ ਉਦਾਹਰਨਾਂ ਦੇ ਨਾਲ JUnit ਵਿੱਚ ਟੈਸਟ ਕੇਸਾਂ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਨ ਬਾਰੇ ਦੱਸਦਾ ਹੈ। ਤੁਸੀਂ JUnit 4 ਵਿੱਚ @Ignore ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਸਿੱਖੋਗੇ & @Disabled ਐਨੋਟੇਸ਼ਨ in JUnit 5:
ਪਿਛਲੇ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ, ਅਸੀਂ ਸਮਝ ਲਿਆ ਹੈ ਕਿ API ਨੂੰ ਐਨੋਟੇਸ਼ਨ ਕੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਇਹ ਕੀ ਕਰਦਾ ਹੈ ਅਤੇ ਲਾਈਫਸਾਈਕਲ ਐਨੋਟੇਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀਆਂ ਬੁਨਿਆਦੀ ਉਦਾਹਰਣਾਂ ਵੀ ਦੇਖੀਆਂ ਹਨ, ਉਹਨਾਂ ਦੀਆਂ ਤਰਜੀਹਾਂ ਜਦੋਂ ਇੱਕ ਟੈਸਟ ਕੇਸ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਹੋਲਡ ਕਰੋ।
ਆਓ ਉਹਨਾਂ ਸਥਿਤੀਆਂ 'ਤੇ ਰੌਸ਼ਨੀ ਪਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੀਏ ਜਦੋਂ ਸਾਨੂੰ ਲੋੜ ਹੈ ਨਹੀਂ ਚਲਾਉਣ ਜਾਂ ਹਨ ਸਾਰੇ ਟੈਸਟ ਕੇਸਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ ਮੰਨਿਆ ਨਹੀਂ। ਅਸੀਂ JUnit ਵਿੱਚ ਟੈਸਟ ਕੇਸਾਂ ਨੂੰ ਅਣਡਿੱਠ ਕਰਨਾ ਸਿੱਖਾਂਗੇ।
JUnit ਟੈਸਟ ਕੇਸਾਂ ਨੂੰ ਅਣਡਿੱਠ ਕਰੋ
ਕੁਝ ਟੈਸਟ ਕੇਸ ਹੋ ਸਕਦੇ ਹਨ ਜੋ ਨਹੀਂ ਚਲਾਏ ਜਾ ਸਕਦੇ ਹਨ ਕਿਉਂਕਿ ਉਹ ਨਹੀਂ ਹੋ ਸਕਦੇ ਕੁਝ ਕੋਡ ਤਬਦੀਲੀਆਂ ਨਾਲ ਸਬੰਧਤ ਹੋਣਾ ਜਾਂ ਟੈਸਟ ਕੇਸਾਂ ਲਈ ਕੋਡ ਅਜੇ ਵੀ ਵਿਕਾਸ ਅਧੀਨ ਹੋ ਸਕਦਾ ਹੈ, ਇਸਲਈ ਅਸੀਂ ਉਹਨਾਂ ਨੂੰ ਚਲਾਉਣ ਤੋਂ ਬਚਦੇ ਹਾਂ।
ਅਜਿਹੇ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਸਾਨੂੰ ਕੁਝ ਹੋਰਾਂ ਨੂੰ ਛੱਡ ਕੇ ਟੈਸਟ ਕੇਸਾਂ ਦਾ ਇੱਕ ਸੈੱਟ ਚਲਾਉਣ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। . ਇਸ ਲਈ, ਇਹ ਕੀ ਹੈ ਜੋ JUnit 4, ਅਤੇ JUnit 5, ਸਾਨੂੰ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਅਸੀਂ ਕੁਝ ਟੈਸਟ ਕੇਸਾਂ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਜਾਂ ਅਸਮਰੱਥ ਕਰਦੇ ਹੋਏ ਜਾਂ ਇਸ ਨੂੰ 'ਛੱਡਣ' ਕਹਿ ਕੇ ਸਿਰਫ ਕੁਝ ਟੈਸਟ ਕੇਸ ਚਲਾਉਣ ਦੇ ਯੋਗ ਹੋ ਸਕੀਏ?
ਖੁਸ਼ਕਿਸਮਤੀ ਨਾਲ, ਸਾਡੇ ਕੋਲ ਇੱਕ ਟੈਸਟ ਕੇਸ ਨੂੰ ਛੱਡਣ ਲਈ JUnit 4 ਲਈ @Ignore ਐਨੋਟੇਸ਼ਨ ਹੈ ਜਦੋਂ ਕਿ JUnit 5 ਲਈ @Disabled ਐਨੋਟੇਸ਼ਨ ਹੈ। ਇਸੇ ਤਰ੍ਹਾਂ ਕਰਨ ਲਈ।
JUnit 4 – @Ignore ਐਨੋਟੇਸ਼ਨ
- JUnit 4 @Ignore ਐਨੋਟੇਸ਼ਨ ਨੂੰ ਇੱਕ ਟੈਸਟ ਵਿਧੀ ਲਈ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਇਸ ਦੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਛੱਡਣ ਲਈ। ਇਸ ਮਾਮਲੇ ਵਿੱਚ,ਤੁਹਾਨੂੰ ਇੱਕ ਟੈਸਟ ਵਿਧੀ ਲਈ @Test ਐਨੋਟੇਸ਼ਨ ਦੇ ਨਾਲ @Ignore ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਛੱਡਣਾ ਚਾਹੁੰਦੇ ਹੋ।
- ਇੱਕ ਕਲਾਸ ਦੇ ਅਧੀਨ ਸਾਰੇ ਟੈਸਟ ਕੇਸਾਂ ਨੂੰ ਛੱਡਣ ਲਈ, ਐਨੋਟੇਸ਼ਨ ਨੂੰ ਟੈਸਟ ਕਲਾਸ 'ਤੇ ਵੀ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਤੁਹਾਨੂੰ ਕਲਾਸ ਪੱਧਰ 'ਤੇ @Ignore ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।
ਕੋਡ ਨੂੰ @Ignore ਕੰਮ ਕਰਨ ਲਈ ਆਯਾਤ ਕਰਨ ਲਈ ਪੈਕੇਜ org.junit.Ignore ਦੀ ਲੋੜ ਹੈ। ਆਉ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੀਏ ਕਿ ਇੱਕ JUnit 4 ਟੈਸਟ ਵਿੱਚ ਇੱਕ ਟੈਸਟ ਵਿਧੀ ਨੂੰ ਕਿਵੇਂ ਛੱਡਣਾ ਹੈ। ਅਸੀਂ ਪਹਿਲੀ ਟੈਸਟਕੇਸ ਵਿਧੀ ਨੂੰ ਛੱਡਣ ਲਈ JUnitProgram.java ਨੂੰ ਸੋਧਾਂਗੇ।
ਕੋਡ ਦਾ ਸਨਿੱਪਟ ਹੈ:
@Ignore @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); } @Test public void test_JUnit2() { System.out.println("This is the testcase test_JUnit2() in this class"); } @Test public void test_JUnit3() { System.out.println("This is the testcase test_JUnit3() in this class"); }
ਕਲਾਸ ਫਾਈਲ ਦੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ 'ਤੇ, test_JUnit1() ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੌਰਾਨ ਛੱਡਿਆ ਜਾਂਦਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, @Ignore ਨਾਲ ਐਨੋਟੇਟ ਕੀਤੀ ਗਈ ਵਿਧੀ ਅਤੇ ਹੋਰ ਸਾਰੀਆਂ ਟੈਸਟ ਵਿਧੀਆਂ ਉਮੀਦ ਅਨੁਸਾਰ ਚੱਲਦੀਆਂ ਹਨ।
ਨਤੀਜੇ ਵਜੋਂ ਰਨ ਕਾਉਂਟ 3/3 ਟੈਸਟ ਕੇਸ ਦਿਖਾਉਂਦੇ ਹਨ ਅਤੇ 1 ਟੈਸਟਕੇਸ ਛੱਡੇ ਜਾਂਦੇ ਹਨ। ਰਨ ਕਾਉਂਟ 3/3 ਦਿਖਾਈ ਗਈ ਕਿਉਂਕਿ ਛੱਡੇ ਗਏ ਟੈਸਟਕੇਸ ਨੂੰ ਵੀ ਚਲਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਗਈ ਸੀ।
ਕੰਸੋਲ ਵਿੰਡੋ ਦਾ ਹੇਠਾਂ ਦਿੱਤਾ ਸਕ੍ਰੀਨਸ਼ਾਟ ਇਹੀ ਸਾਬਤ ਕਰਦਾ ਹੈ।
@ਇਗਨੋਰ ਐਨੋਟੇਸ਼ਨ ਇੱਕ ਕਾਰਨ ਪੈਰਾਮੀਟਰ ਨਾਲ
@ਇਗਨੋਰ ਐਨੋਟੇਸ਼ਨ ਵਿੱਚ ਵੀ ਇੱਕ ਪਰਿਵਰਤਨ ਹੈ। ਐਨੋਟੇਸ਼ਨ ਇੱਕ ਸਟ੍ਰਿੰਗ ਵੈਲਯੂ ਦੇ ਨਾਲ ਇੱਕ ਸਿੰਗਲ ਆਰਗੂਮੈਂਟ ਵਿੱਚ ਲੈਂਦੀ ਹੈ ਜੋ ਟੈਸਟ ਨੂੰ ਛੱਡਣ ਦਾ ਕਾਰਨ ਹੈ।
ਆਓ @ਇਗਨੋਰ ਐਨੋਟੇਸ਼ਨ ਦੀ ਇਸ ਪਰਿਵਰਤਨ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੀਏ।
ਕੋਡ ਸਨਿੱਪਟ ਹੇਠਾਂ ਦਿੱਤੇ ਅਨੁਸਾਰ ਹੈ :
@Ignore("the testcase is under development") @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
ਕੰਸੋਲ ਵਿੰਡੋ ਉਸੇ ਤਰ੍ਹਾਂ ਦਾ ਨਤੀਜਾ ਦਿਖਾਉਂਦੀ ਹੈ ਜੋ ਕਿ @Ignore ਐਨੋਟੇਸ਼ਨ ਨੂੰ ਪਾਸ ਕੀਤੇ ਬਿਨਾਂ ਸੀ।
ਹੁਣ, ਆਓ ਦੇਖੀਏ ਕਿ ਸਾਰੇ ਟੈਸਟ ਕਿਵੇਂ ਹੁੰਦੇ ਹਨ।ਇੱਕ ਵਰਗ ਨਾਲ ਸਬੰਧਤ ਨੂੰ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਅਸੀਂ ਹੁਣ JUnitProgram.java
ਕੋਡ ਸਨਿੱਪਟ ਲਈ ਕਲਾਸ ਪੱਧਰ 'ਤੇ @Ignore ਐਨੋਟੇਸ਼ਨ ਨੂੰ ਅਪਡੇਟ ਕਰਾਂਗੇ ਜਿਵੇਂ ਕਿ ਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ:
import org.junit.AfterClass; @Ignore("the testcase is under development") public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println("This is the preClass() method that runs one time before the class"); } @Before public void setUp() { System.out.println("_______________________________________________________\n"); System.out.println("This is the setUp() method that runs before each testcase"); } @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
ਕਲਾਸ ਫਾਈਲ ਦੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਤੋਂ ਬਾਅਦ, ਕੰਸੋਲ ਕੁਝ ਨਹੀਂ, ਦਿਖਾਉਂਦਾ ਹੈ ਅਤੇ JUnit ਟੈਬ ਦੇ ਹੇਠਾਂ ਚਲਾਓ ਗਿਣਤੀ ਦਿਖਾਉਂਦਾ ਹੈ 1 ਕਲਾਸ ਵਿੱਚੋਂ 1 ਕਲਾਸ ਛੱਡੀ ਗਈ .
ਹੇਠਾਂ ਕੰਸੋਲ ਵਿੰਡੋ ਦਾ ਸਕ੍ਰੀਨਸ਼ੌਟ ਹੈ:
ਜੂਨੀਟ 5 – @ਅਯੋਗ ਐਨੋਟੇਸ਼ਨ
JUnit 5 ਵਿੱਚ @Disabled ਐਨੋਟੇਸ਼ਨ JUnit 4 ਵਿੱਚ @Ignore ਐਨੋਟੇਸ਼ਨ ਵਾਂਗ ਹੀ ਕੰਮ ਕਰਦੀ ਹੈ।
- ਤੁਸੀਂ ਟੈਸਟ ਪੱਧਰ 'ਤੇ ਐਨੋਟੇਸ਼ਨ ਨੂੰ ਲਾਗੂ ਕਰਕੇ ਟੈਸਟ ਵਿਧੀ ਜਾਂ ਟੈਸਟਾਂ ਦੇ ਸਮੂਹ ਲਈ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਅਸਮਰੱਥ ਜਾਂ ਛੱਡ ਸਕਦੇ ਹੋ।
- ਜਾਂ ਸਾਰੇ ਟੈਸਟਾਂ ਨੂੰ ਟੈਸਟ ਵਿਧੀ ਪੱਧਰ 'ਤੇ ਲਾਗੂ ਕਰਨ ਦੀ ਬਜਾਏ ਕਲਾਸ ਪੱਧਰ 'ਤੇ @Disabled ਐਨੋਟੇਸ਼ਨ ਲਾਗੂ ਕਰਕੇ ਛੱਡਿਆ ਜਾ ਸਕਦਾ ਹੈ।
@Ignore ਵਾਂਗ, ਇੱਕ ਕਾਰਨ ਵੀ ਪਾਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਕਿਸੇ ਵੀ ਡਿਵੈਲਪਰ ਜਾਂ ਕਾਰੋਬਾਰੀ ਵਿਸ਼ਲੇਸ਼ਕ ਲਈ @Disabled ਇਹ ਜਾਣਨ ਲਈ ਕਿ ਇੱਕ ਖਾਸ ਟੈਸਟਕੇਸ ਕਿਉਂ ਛੱਡਿਆ ਗਿਆ ਸੀ। ਪੈਰਾਮੀਟਰ ਵਿਕਲਪਿਕ ਰਹਿੰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ @Ignore ਦੇ ਮਾਮਲੇ ਵਿੱਚ।
( ਨੋਟ: ਅਸੀਂ ਦੁਹਰਾਓ ਤੋਂ ਬਚਣ ਲਈ ਇੱਕ ਅਸਲ ਕੋਡ ਦੁਆਰਾ @Disabled ਐਨੋਟੇਸ਼ਨ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਤੋਂ ਬਚਾਂਗੇ ਕਿਉਂਕਿ ਇਹ ਹੇਠ ਲਿਖੇ ਅਨੁਸਾਰ ਹੈ। JUnit 4 ਵਿੱਚ @Ignore ਦਾ ਪਾਲਣ ਕੀਤਾ ਗਿਆ ਹੈ।)
@Ignore ਬਨਾਮ @Disabled ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਸਿਰਫ਼ ਇੱਕ ਹੀ ਫ਼ਰਕ ਇਹ ਹੈ ਕਿ ਜਦੋਂ ਐਨੋਟੇਸ਼ਨ ਨੂੰ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਕਲਾਸ ਲੈਵਲ, JUnit ਕਲਾਸ ਫਾਈਲ ਦੀ ਪੋਸਟ-ਐਗਜ਼ੀਕਿਊਸ਼ਨ, ਜੂਨਟ 4 ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਰਨ ਕਾਉਂਟ, 1/1 ਕਲਾਸ ਛੱਡੀ ਗਈ ਦਿਖਾਉਂਦਾ ਹੈ।
ਇਸ ਲਈ ਇੱਕ ਛੱਡੀ ਜਾ ਰਹੀ ਕਲਾਸ ਦੀ ਗਿਣਤੀ ਪ੍ਰਦਾਨ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਕਿ ਇਸ ਮਾਮਲੇ ਵਿੱਚ ਜੂਨਟ 5 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਕਲਾਸ ਵਿੱਚ ਕੁੱਲ ਤਿੰਨ ਟੈਸਟ ਤਰੀਕਿਆਂ ਵਿੱਚੋਂ ਤਿੰਨ ਟੈਸਟ ਤਰੀਕਿਆਂ ਨੂੰ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਸੀ 3/3 ਟੈਸਟ ਕੇਸਾਂ ਨੂੰ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ।
ਇਸ ਲਈ, ਛੱਡੇ ਗਏ ਟੈਸਟ ਕੇਸਾਂ ਦੀ ਦਿੱਖ , JUnit 5 JUnit 4 ਦੀ ਤੁਲਨਾ ਵਿੱਚ ਥੋੜ੍ਹਾ ਬਿਹਤਰ ਕੰਮ ਕਰਦੀ ਹੈ।
ਸਿੱਟਾ
ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ, ਅਸੀਂ ਸਿੱਖਿਆ ਕਿ ਕਿਹੜੀਆਂ ਸਥਿਤੀਆਂ ਹਨ ਜਦੋਂ ਸਾਨੂੰ ਕੁਝ ਟੈਸਟ ਕੇਸਾਂ ਨੂੰ ਚਲਾਉਣਾ ਛੱਡਣਾ ਪੈ ਸਕਦਾ ਹੈ। ਅਸੀਂ ਇਹ ਵੀ ਸਿੱਖਿਆ ਕਿ ਕੁਝ ਟੈਸਟ ਕੇਸਾਂ ਨੂੰ JUnit 4 ਅਤੇ JUnit 5 ਵਿੱਚ ਕਿਵੇਂ ਛੱਡਣਾ ਹੈ।