Testing packages
Background
Section titled “Background”Given a file named “pen.json” with:
{ "type": "library", "dependencies": { "Test": "pen:///test" }}And a file named “Foo.pen” with:
Add = \(x number, y number) number { x + y}Test a module
Section titled “Test a module”Given a file named “Foo.test.pen” with:
import Test'Assertimport 'Foo
Add = \() none | error { Assert'Equal(Foo'Add(41, 1), 42)}When I run pen test
Then the exit status should be 0
And the stdout should contain “OK”.
Fail to test a module
Section titled “Fail to test a module”Given a file named “Foo.test.pen” with:
import Test'Assertimport 'Foo
Add = \() none | error { Assert'Equal(Foo'Add(41, 0), 42)}When I run pen test
Then the exit status should not be 0
And the stdout should contain “FAIL”.
Run multiple tests
Section titled “Run multiple tests”Given a file named “Foo.test.pen” with:
import Test'Assertimport 'Foo
Add = \() none | error { Assert'Equal(Foo'Add(41, 1), 42)}
AddMore = \() none | error { Assert'Equal(Foo'Add(40, 2), 42)}When I successfully run pen test
Then the exit status should be 0.
Run no test
Section titled “Run no test”When I run pen test
Then the exit status should be 0.
Use a debug function in a test
Section titled “Use a debug function in a test”Given a file named “Foo.test.pen” with:
Foo = \() none | error { debug("hello")}When I run pen test
Then the exit status should be 0.