개발하면서 유닛테스트라는게 있다는건 알고있었지만 활용하지는 않았다. 그러다보니 몇글자 바꾸지 않았는데 빌드를 계속 돌려야 하고 버리는 시간들이 많이 생겨나면서 유닛테스트의 필요성을 느끼게 되는것 같아서 활용해 보고자 함
struct Test {
let str: String
var isBool:Bool {
get {
return str.count > 2 && str.count < 5
}
}
}
프로젝트에 이런 구조체나 클래스가 있다고 가정한 뒤에 유닛테스트에서 필요한 테스트를 진행해준다.
처음엔 거추장스럽고 귀찮아지겠지만 프로젝트 단위가 점점 커지다보면 생각보다 효율성이 올라갈꺼같다.
import XCTest
@testable import ReactorKit_Sample
class ReactorKit_SampleTests: XCTestCase {
//초기화 코드(시작되기전에 한번 호출된다)
override func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class.
}
//해체코드(끝날때 한번 호출된다)
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() {
// This is an example of a performance test case.
self.measure {
// Put the code you want to measure the time of here.
}
}
func testVanillaLeapYear() {
let test = Test(str: "abcd")
XCTAssertTrue(test.isBool)
}
func testAnyOldYear() {
let test = Test(str: "a")
XCTAssertTrue(!test.isBool)
}
func testCentury() {
let test = Test(str: "qwert")
XCTAssertTrue(!test.isBool)
}
}