Skip to content

1.0.0

Compare
Choose a tag to compare
@0xLeif 0xLeif released this 03 Nov 00:44
· 7 commits to main since this release
2c35b85

t

Quickly test expectations

What is t?

t is a simple testing framework using closures and errors. You have the ability to create a suite that has multiple steps, expectations, and asserts. Expectations can be used to expect one or multiple assertions.

Where can t be used?

t can be used to test quickly inside a function to make sure something is working as expected. t can also be used in unit tests if wanted.

Examples

t.suite

t.suite {
    // Add an expectation that asserting true is true and that 2 is equal to 2
    try t.expect {
        try t.assert(true)
        try t.assert(2, isEqualTo: 2)
    }
    
    // Add an assertion that asserting false is not true
    try t.assert(notTrue: false)
    
    // Add an assertion that "Hello" is not equal to "World"
    try t.assert("Hello", isNotEqualTo: "World")
    
    // Log a message
    t.log("📣 Test Log Message")
    
    // Log a t.error
    t.log(error: t.error(description: "Mock Error"))
    
    // Log any error
    struct SomeError: Error { }
    t.log(error: SomeError())
    
    // Add an assertion to check if a value is nil
    let someValue: String? = nil
    try t.assert(isNil: someValue)
    
    // Add an assertion to check if a value is not nil
    let someOtherValue: String? = "💠"
    try t.assert(isNotNil: someOtherValue)
}

t.expect

try t.expect {
    let someValue: String? = "Hello"
    try t.assert(isNil: someValue)
}

t.assert

try t.assert("Hello", isEqualTo: "World")

t.log

t.log("📣 Test Log Message")

XCTest

Assert suite is true

XCTAssert(
    t.suite {
        try t.assert(true)
    }
)

Assert expectation is true

XCTAssertNoThrow(
    try t.expect("true is true and that 2 is equal to 2") {
        try t.assert(true)
        try t.assert(2, isEqualTo: 2)
    }
)

Assert is false

XCTAssertThrowsError(
    try t.assert(false)
)

What's Changed

  • Add Swift async support and unwrap and throwing functions by @0xLeif in #2

Full Changelog: 0.2.0...1.0.0