unit.move

module 0x2::unit {
    #[test_only]
    use std::signer;

    // no parameter
    #[test]
    public fun unit_test_add() {
        let a = 1;
        let b = 2;
        assert!( add_test(a, b) == 3, 100);
    }

    // a parameter
    #[test(sender = @0xC0FFEE)]
    public fun unit_test_arg( sender: signer) {
        assert!( signer::address_of(&sender) == @0xC0FFEE, 100)
    }

    // more parameters
    #[test(sender1 = @0xC0FFEE, sender2 = @0xCAFE)]
    fun uint_test_args(sender1: signer, sender2: signer) {
        assert!(signer::address_of(&sender1) == @0xC0FFEE, 100);
        assert!(signer::address_of(&sender2) == @0xCAFE, 101);
    }

    #[test_only]
    public fun add_test(a: u64, b:u64) :u64 {
        return a + b
    }

    // fail to pass
    #[test]
    #[expected_failure]
    public fun unit_test_fail() {
        abort 1
    }

}

move test unit::unit_test_fail
move test -g