Objective-C LanguageUnit testing using Xcode


Remarks

Dependencies:

  • If application uses third party libraries or cocoa pods, then those libraries or pods are needed to be install for test as well.
  • Test class (Test Suit) extends XCTestCase.

Get brushed up before starting:

  • All test classes have two methods in common setUp & tearDown.

  • setUp runs before every testcase & tearDown after every testcase.

  • Test cases runs alphabetically.

  • In Test Driven Development, it is good to create dummy test data first.

  • Test case methods starts with "test" keyword.

  • Test methods accept no parameters & return no value.

Appendix:

There are several other methods for comparing the expected result & actual result out of an operation. Some of those methods are listed below:

  • XCTAssertNil(expression, comment) generates a failure if expression != nil.
  • XCTAssertNotNil(expression, comment) generates a failure if expression = nil.
  • XCTAssert(expression, comment) generates a failure if expression == false.
  • XCTAssertTrue(expression, comment) generates a failure if expression == false.
  • XCTAssertFalse(expression, comment) generates a failure if expression != false.
  • XCTAssertEqualObjects(expression1, expression2, comment) generates a failure if expression1 is not equal to expression2.
  • XCTAssertEqualObjects(expression1, expression2, comment) generates a failure if expression1 is equal to expression2.
  • XCTAssertNotEqual(expression1, expression2, comment) generates a failure if expression1 == expression2.
  • XCTAssertEqual(expression1, expression2, comment) generates a failure if expression1 != expression2.
  • XCTAssertGreaterThanOrEqual(expression1, expression2, comment) generates a failure when ( expression1 < expression2).