अद्यतन स्विफ्ट 2.x, 3.x, 4.x और 5.x
अब आपको publicपरीक्षण करने के तरीकों को जोड़ने की आवश्यकता नहीं है । स्विफ्ट के नए संस्करणों पर केवल @testableकीवर्ड जोड़ना आवश्यक है ।
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
और आपके आंतरिक तरीके रख सकते हैं Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
ध्यान दें कि private(और fileprivate) प्रतीक उपयोग करने के साथ भी उपलब्ध नहीं हैं @testable।
स्विफ्ट 1.x
यहां स्विफ्ट से दो प्रासंगिक अवधारणाएं हैं (एक्सकोड 6 बीटा 6 के रूप में)।
- आपको स्विफ्ट कक्षाएं आयात करने की आवश्यकता नहीं है, लेकिन आपको बाहरी मॉड्यूल (लक्ष्य) आयात करने की आवश्यकता है
- स्विफ्ट में डिफ़ॉल्ट एक्सेस कंट्रोल स्तर है
Internal access
ध्यान में रखते हुए पर कि परीक्षण एक और लक्ष्य पर हैं PrimeNumberModelTests.swiftआप की जरूरत है importलक्ष्य उस वर्ग होता है, जो, परीक्षण करना चाहते हैं तो अपने लक्ष्य कहा जाता है MyProjectजोड़ने की आवश्यकता होगी import MyProjectकरने के लिए PrimeNumberModelTests:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
लेकिन यह आपकी कक्षा का परीक्षण करने के लिए पर्याप्त नहीं है PrimeNumberModel, क्योंकि डिफ़ॉल्ट एक्सेस कंट्रोल स्तर है Internal Access, आपकी कक्षा टेस्ट बंडल को दिखाई नहीं देगी, इसलिए आपको इसे Public Accessऔर उन सभी तरीकों को बनाने की आवश्यकता है जिन्हें आप परीक्षण करना चाहते हैं:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}