मैं इस विचार के साथ स्विफ्ट में एक पुन: प्रयोज्य परीक्षण दोहन कि उपवर्गों परीक्षण दोहन का विस्तार होगा परीक्षण के अंतर्गत उदाहरण प्रदान करने के लिए बनाने के लिए कोशिश कर रहा हूँ, और अपने स्वयं के उपवर्ग-विशेष परीक्षा में जोड़ सकते हैं विधियों, कुछ इस तरह:स्विफ्ट: एक प्रारंभकर्ता कि एक NSInvocation लेता अधिभावी
class FooTestHarness: XCTestCase {
let instance: Foo
init(instance: Foo) {
self.instance = instance
}
func testFooBehavior() {
XCTAssert(instance.doesFoo())
}
}
class FooPrime: Foo {
func doesFooPrime(): Bool { /* ... */ }
}
class FooPrimeTests: XCTestCase {
init() {
super.init(FooPrime())
}
func myInstance(): FooPrime {
return instance as FooPrime
}
func testFooPrimeBehavior() {
XCTAssert(myInstance().doesFooPrime())
}
}
हालांकि, जब XCode के testrunner FooPrimeTests
को चलाने के लिए कोशिश करता है, यह कोई आर्ग init()
फोन नहीं है, यह init(invocation: NSInvocation!)
कॉल (और विफल रहता है क्योंकि एक नहीं है वहाँ)। मैं FooTestHarness
में से ओवरराइड करने की कोशिश की:
init(invocation: NSInvocation!, instance: Foo) {
self.instance = instance
super.init(invocation)
}
और FooPrimeTests
में:
init(invocation: NSInvocation!) {
super.init(invocation, FooPrime())
}
लेकिन इस संदेश 'NSInvocation' is unavailable
साथ विफल रहता है।
क्या कोई कामकाज है?
मुझे एक ही समस्या है! – Andy
एक कामकाज के रूप में, शायद आप अपनी वस्तु का मज़ाक उड़ा सकते हैं। आप इनिट कॉल को रीडायरेक्ट करने में सक्षम होंगे। – Pintouch