0
この質問は、最初から再編集されています。多くの試行の後、主な問題は、特定のプロパティにアクセスする前にフック関数を実行することを保証するプロトコルを設計することです。プロパティゲッターでフック関数を強制するには?
protocol Foo {
var bar: Int { get }
func hook()
}
そして、私は次の試験に合格したい:
func testBarGetterShouldInvokeHooker() {
class DummyFoo: Foo {
var bar: Int = 0
var invoked: Bool = false
func hook() {
invoked = true
}
}
let foo = DummyFoo()
_ = foo.bar
XCTAssertTrue(foo.invoked)
}
はい、私はフック関数が自動的にフックアップさせることをしたい、それがある - フックする実装構造体/クラスに頼りませんそれは明白です。
これは素晴らしい拡張機能を書くことで実現できると思います。
に準拠して、私は」することができますテストメソッドのようないくつかのダミー実装を保証する適切な拡張を書く方法を理解することは、オートフック機能も持っています。あなたの答えは、 'getBarValue'メソッドを直接呼び出して、' hook'をバイパスすることができます。 –
@ NandiinBaoあなたはどこかからその価値を得る必要があり、それは公開されている必要があります。 –