170 likes | 345 Views
MXUnit. Vikas Patel. Agenda. What is MXUnit? Why MXUnit? Installation Anatomy of test cases Directory runner & output formats Data provider Testing private methods Built-in Assertions. What is MXUnit?.
E N D
MXUnit Vikas Patel
Agenda • What is MXUnit? • Why MXUnit? • Installation • Anatomy of test cases • Directory runner & output formats • Data provider • Testing private methods • Built-in Assertions
What is MXUnit? • MXUnit is a unit testing framework for CFML developers, modeled after other xUnit frameworks (JUnit, etc)
Why MXUnit? • Why testing? • Convenience features like directory runner, easy debugging, eclipse plug-in, output formats etc. • Support by Google group
Installation • Download the latest version • Unzip to your webroot; e.g., C:\Inetpub\wwwroot\ • Test the installation e.g. http://localhost:8500/mxunit/
Anatomy of a TestCase • Create component (.cfc), filename either starts or ends with "Test“ • component extends mxunit.framework.TestCase • The TestCase can contain setUp() and tearDown() functions that will run prior to and after each and every test
Anatomy of a TestCase (Cont.) • The TestCase can contain beforeTests() and afterTests() functions that will be run once before and once after all tests • Write public methods in which you can write your assertions • You can run the test by loading it in the browser and suffixing it with "?method=runTestRemote", like so: http://localhost/myapp/tests/MyTest.cfc?method=runTestRemote
Directory Runner: Example • Supported Output formats: • HTML (or extjs deprecated) • XML • Junitxml • Query • Array
Data Provider • Basic array data providor • Example
Data Provider (Cont.) • Query data provider • Basic list data provider • Basic Excel/CSV data provider • Basic iterator data provider
Built-in Assertions • assertTrue(boolean condition [,String message]) • assertFalse(boolean condition [, String message]) • assert(boolean condition [,String message]) • assertEquals(any expected, any actual [, String message])
Built-in Assertions (Cont.) • fail(String message) • failNotEquals(any value, any value2 [,String message]) • assertSame(any obj1, any obj2 [,String message]) • assertNotSame(any obj1, any obj2 [,String message])
Built-in Assertions (Cont.) • assertXPath(String xpath, any data, [String text], [String message]) • assertIsTypeOf(component obj, String type) • assertIsXMLDoc(any xml [, String message]) • assertIsArray(any obj1) • assertIsDefined(any obj1)
Built-in Assertions (Cont.) • assertIsEmpty(any obj1) • assertIsEmptyArray(any obj1,[String message]) • assertIsEmptyQuery(any obj1,[String message]) • assertIsEmptyStruct(any obj1,[String message]) • assertIsQuery(any q) • assertIsStruct(any obj)