Skip to main content

%UnitTest.TestCacheScript

class %UnitTest.TestCacheScript extends %UnitTest.TestScript

Extends TestScript. Adds methods to test ObjectScript code.

This class compares a file called output.log to a file called reference.log.
  1. Create a new class that extends TestCacheScript called, for example, TestCacheScriptX and export it to your test directory.

  2. Create a file called script.txt in your test directory, containing ObjectScript code you want to test. Here's an example:
    w "abc"
    w $p("abc,xyz",",",Z)
    
  3. Run the test.

    d ##class(%UnitTest.Manager).RunTest("dirname",,"reference")

    Each line of code in script.txt is executed and command output is written to reference.log until the end of file in script.txt is reached. The first time that you run the test, set the third argument as "reference" (lowercase and in double quotes) to create a reference.log file. (Use "screen" as the third argument to display output on the screen.) Check that the contents of new reference.log file are correct.

  4. Run the test again

    d ##class(%UnitTest.Manager).RunTest("dirname")

Every time you run your test the new output is written to output.log. output.log is compared to reference.log. If the files match, the test passes. If the files do not match, the test fails. If the output changes, you need to update the reference.log file. Note that, in Intersystems, the default test directory is U:/internal/testing/unit_tests

Method Inventory

Methods

classmethod runScript(scriptfile As %String, outputfile As %String)
Inherited description: Override this method with an implementation that reads from scriptfile, writing the output to outputfile. The output should be repeatable for a given script; not dependent on, e.g., the time or the system under test.

Inherited Members

Inherited Properties

Inherited Methods

FeedbackOpens in a new tab