Skip to content

Latest commit

 

History

History
69 lines (48 loc) · 2.42 KB

FoxUnit_Asserts.md

File metadata and controls

69 lines (48 loc) · 2.42 KB

FoxUnit code sample

Notice that each Test Class can contain multiple Tests, which are simply individual procedures defined within the class.

Define Class CustomerTestClass As FxuTestCase Of FxuTestCase.prg

	oObject = .Null.

	Procedure Setup
	This.oObject = Createobject("cCustomerClass")
	Endproc

	Procedure testGetCustomer
		llReturn = This.oObject.GetCustomer("AKSEL")
		This.AssertTrue(llReturn, "Customer number not found.")
		If llReturn
			This.MessageOut("Customer name is  " + This.oObject.CustName)
		Endif
	Endproc

	Procedure testRaiseCreditLimit
		loCustomer = This.oObject
		lnOriginalCreditLimit = loCustomer.oData.credit_limit
		loCustomer.SetCreditLimit(lnOriginalCreditLimit + 100)
		This.AssertTrue(loCustomer.oData.credit_limit > lnOriginalCreditLimit, "Error: Credit limit not increased.")
	Endproc
	
	Procedure TearDown()
	&& Add any cleanup code here.
	Endproc
EndDefine

Asserts These Assert methods can be used to test actual values against expected values, with output text to be displayed when the Assert statement is not met.

AssertEquals(tuExpectedValue, tuExpression, tcMessage,tuNonCaseSensitiveStringComparison)
(AssertEquals now accepts objects as well as scalar variables)
AssertEqualsArrays(@taArray1, @taArray2, tcMessage)
AssertNotEqualsArrays(@taArray1, @taArray2, tcMessage)

AssertTrue(tuExpression, tcMessage)
AssertFalse(tuExpression, tcMessage)
AssertNotEmpty(tuExpression, tcMessage)
AssertNotNull(tuExpression, tcMessage)
AssertNotNullOrEmpty(tuExpression, tcMessage)

AssertIsObject(toObject, tcMessage)
AssertIsNotObject(toObject, tcMessage)

AssertHasError(tcMessage, toException, taStackInfo)
AssertHasErrorNo(tcMessage, toException, tnErrorNo, taStackInfo)

AssertNotImplemented(tcMessage)  (The new default return value for new tests)

Other methods Additionally, these methods are frequently used when creating tests:

SetUp() && Called automatically at beginning of each test
TearDown() && Called automatically at the end of each test
MessageOut(tcMessage) && Message will be displayed in the UI
  • Setup() method should contain any common code that is needed for each test -- such as setting up paths or instantiating objects.
  • TearDown() method contains any cleanup code that should be run at the end of each test method.
  • MessageOut() - Add any text output from your test methods that you wish to display in the Messages pane of the FoxUnit UI.