KO
|
EN
gitlite — search
Search
#typescript
#ai-agents
#ai
#dsh-plugin
#deepseek-harness
#open-source
#cli
#claude-code
#codex
#developer-tools
#react
#windows
Stub
★ 35
Open GitHub ↗
A minimal method stub for Swift.
Download README (.md)
Explore Similar Repositories
MaxFeeder
:
Arduino Mega shield for controlling part feeders for Open PNP
com.gswxxn.unlockmilink
:
小米不妙·享
decodeObfuscator
:
No description available.
ex-LightDotSo
:
🌘 - The Social Explorer for Ethereum
expo-background-color
:
[UNOFFICIAL] stack based React component for updating the native background color
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
Stub
?
Download (.md)
# Stub  A minimal method stub for Swift. ## At a Glance ```swift import Stub final class StubUserService: UserServiceProtocol { @StubProxy(follow) var followStub func follow(userID: Int) -> String { followStub.invoke(userID, default: "") } @StubProxy(edit) var editStub func edit(userID: Int, name: String) -> Bool { editStub.invoke((userID, name), default: false) } } func testMethodCall() { // given let userService = StubUserService() userService.followStub.register { userID in "stub-\(userID)" } // stub // when userService.follow(userID: 123) // call // then let executions = userService.followStub.executions() XCTAssertEqual(executions.count, 1) XCTAssertEqual(executions[0].arguments, 123) XCTAssertEqual(executions[0].result, "stub-123") } ``` ## Usage ### Invoke with default value ```swift @StubProxy(fetchOverview) var fetchOverviewStub func fetchOverview(id: String) -> Overview { fetchOverviewStub.invoke(id, default: Overview.fixture) } ``` ### Invoke without default value > ⚠️ You need to register a stub before calling `invokeWithoutDefault()` ```swift @StubProxy(fetchOverview) var fetchOverviewStub func fetchOverview(id: String) -> Overview { fetchOverviewStub.invokeWithoutDefault(id) } ``` ### Generic ```swift let convertStubStore = StubStore() func convert<Source, Target>(_ source: Source) -> Target { let stub = convertStubStore.stub(arguments: Source.self, result: Target.self) return stub.invokeWithoutDefault(value) } ``` ### Clear all stubs and executions ```swift Stub.clearAll() ``` [ClearAllTests.swift](Tests/StubTests/ClearAllTests.swift) ## License Stub is under MIT license. See the [LICENSE](LICENSE) for more info.