stu

Stubber

A minimal method stub for Swift

Showing:

Popularity

Downloads/wk

0

GitHub Stars

76

Maintenance

Last Commit

1yr ago

Contributors

2

Package

Dependencies

0

License

MIT

Categories

Readme

Stubber

Swift CocoaPods Build Status Codecov

A minimal method stub for Swift.

At a Glance

import Stubber

final class StubUserService: UserServiceProtocol {
  func follow(userID: Int) -> String {
    return Stubber.invoke(follow, args: userID)
  }

  func edit(userID: Int, name: String) -> Bool {
    return Stubber.invoke(edit, args: (userID, name))
  }
}

func testMethodCall() {
  // given 
  let userService = StubUserService()
  Stubber.register(userService.follow) { userID in "stub-\(userID)" } // stub
  
  // when
  userService.follow(userID: 123) // call
  
  // then
  XCTAssertEqual(Stubber.executions(userService.follow).count, 1)
  XCTAssertEqual(Stubber.executions(userService.follow)[0].arguments, 123)
  XCTAssertEqual(Stubber.executions(userService.follow)[0].result, "stub-123")
}

Escaping Parameters

When a function contains an escaped parameter, use escaping() on arguments.

 func request(path: String, completion: @escaping (Result) -> Void) {
-  Stubber.invoke(request, args: (path, completion))
+  Stubber.invoke(request, args: escaping(path, completion))
 }

Installation

pod 'Stubber'

License

Stubber is under MIT license. See the LICENSE for more info.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100