Python: Data driven testing

I love doing TDD – Test driven development.

Sharing a small code construct to include variety of data set in a concise manner without depending on any library

def double(n):
    return n*2

test_data = [
    (2 ,4),
    (4 ,8),
]

for given, expected in test_data:
    assert expected == double(given)
    print(f"Test passed for: given {given} and expected = {expected}")

Output on console
Test passed for: given 2 and expectation = 4
Test passed for: given 4 and expectation = 8

Fitnesse : How to verify sorting order ?

When query fixture is executed, the return result set is verified against the presence or absence of the element without considering the order in which the element appears. It makes it difficult to verify to the sorting order. The good news is that with a little work around it can achieved without much efforts.

fitnesse order

The trick is to append the sequence number appended in the title string of the elements in the wiki page. In the fixture code before returning the result set, append the sequence let’s say “for 1=1 to 10” and validate against wiki page. In this case let’s say the title you are expecting to be at top with sequence number “1 the title” comes down to appear at “4 the title” the test case will get failed. This way the sequence can be verified easily by appending the expected sequence with the title.

fixture code to sort order

testNG : How to ignore or disable a test in testNG

Some times a failing test causes the build to fail. In that cases before the test is fixed a quick remedy is to disable the test to get the build passed. That can be done easily through annotation.

@Test(enabled=false)

The TestNG engine will just bypass this method.

import org.testng.annotations.*;

public class TestNGTest3 {

	@Test(enabled=false)
	public void divisionWithException() {  
	  System.out.println("Method is not ready yet");
	}  

}

In above example, TestNG will not test the divisionWithException() method.