Skip to content

Commit 73aa4f5

Browse files
authored
Merge pull request #52 from YAPP-Github/BOOK-71-test/#43
chore: BDD 테스트 환경 구축
2 parents 4c627cb + d74db20 commit 73aa4f5

9 files changed

Lines changed: 122 additions & 6 deletions

File tree

src/Projects/BKCore/Project.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ let project = Project.project(
2222
bundleId: "coretest" + Project.bundleID,
2323
sources: .tests,
2424
dependencies: [
25-
.core()
25+
.core(),
26+
.external(dependency: .Nimble),
27+
.external(dependency: .Quick)
2628
]
2729
)
2830
]

src/Projects/BKData/Project.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ let project = Project.project(
2626
bundleId: "datatest" + Project.bundleID,
2727
sources: .tests,
2828
dependencies: [
29-
.data()
29+
.data(),
30+
.external(dependency: .Nimble),
31+
.external(dependency: .Quick)
3032
]
3133
)
3234
]

src/Projects/BKDomain/Project.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,16 @@ let project = Project.project(
1616
.core()
1717
]
1818
),
19+
1920
Target.target(
2021
name: "\(BKModule.BKDomain.rawValue)Test",
2122
product: .unitTests,
2223
bundleId: "domaintest" + Project.bundleID,
2324
sources: .tests,
2425
dependencies: [
25-
.domain()
26+
.domain(),
27+
.external(dependency: .Nimble),
28+
.external(dependency: .Quick)
2629
]
2730
)
2831
]
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Copyright © 2025 Booket. All rights reserved
2+
3+
@testable import BKDomain
4+
import Nimble
5+
import Quick
6+
import XCTest
7+
8+
// XCTestCase 대신 QuickSpec을 상속합니다.
9+
final class BDDExampleTest: QuickSpec {
10+
// QuickSpec에서는 setUp/tearDown 대신 spec() 메서드 안에서 테스트를 정의합니다.
11+
override class func spec() {
12+
// describe: 테스트 대상이 되는 시스템 또는 컴포넌트를 설명합니다.
13+
describe("테스트 대상이") {
14+
15+
beforeEach {
16+
// beforeEach: 각 `it` 또는 `context` 블록이 실행되기 전에 수행할 설정을 정의합니다.
17+
}
18+
19+
// context: 특정 시나리오나 상태를 설명합니다.
20+
context("어떤 상황에서") {
21+
// it: 테스트할 개별 행위 또는 기대를 설명합니다.
22+
it("예상되는 행위 1") {
23+
// Nimble의 expect와 매처를 사용하여 단언합니다.
24+
// assertion
25+
// expect(<#T##expression: T?##T?#>).to(<#T##matcher: Matcher<_>##Matcher<_>#>)
26+
}
27+
28+
it("예상되는 행위 2") {
29+
30+
}
31+
}
32+
}
33+
}
34+
35+
}

src/Projects/BKNetwork/Project.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ let project = Project.project(
2323
bundleId: "networktest" + Project.bundleID,
2424
sources: .tests,
2525
dependencies: [
26-
.network()
26+
.network(),
27+
.external(dependency: .Nimble),
28+
.external(dependency: .Quick)
2729
]
2830
)
2931
]

src/Projects/BKStorage/Project.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ let project = Project.project(
2323
bundleId: "storagetest" + Project.bundleID,
2424
sources: .tests,
2525
dependencies: [
26-
.storage()
26+
.storage(),
27+
.external(dependency: .Nimble),
28+
.external(dependency: .Quick)
2729
]
2830
)
2931
]

src/Tuist/Package.resolved

Lines changed: 64 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Tuist/Package.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
// Default is .staticFramework
1010
// productTypes: ["Alamofire": .framework,]
1111
productTypes: ["KakaoSDK": .staticLibrary,
12+
"Nimble": .framework,
13+
"Quick": .framework
1214
]
1315
)
1416
#endif
@@ -17,6 +19,8 @@ let package = Package(
1719
name: "src",
1820
dependencies: [
1921
.package(url: "https://github.com/kakao/kakao-ios-sdk", from: "2.23.0"),
22+
.package(url: "https://github.com/Quick/Nimble.git", from: "13.7.1"),
23+
.package(url: "https://github.com/Quick/Quick.git", from: "7.6.2")
2024
// Add your own dependencies here:
2125
// .package(url: "https://github.com/Alamofire/Alamofire", from: "5.0.0"),
2226
// You can read more about dependencies here: https://docs.tuist.io/documentation/tuist/dependencies

src/Tuist/ProjectDescriptionHelpers/TargetDependency+External.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ public enum External: String {
1212
case SnapKit
1313
case Swinject
1414
case FittedSheets
15+
16+
case Nimble
17+
case Quick
1518
}
1619

1720
extension TargetDependency {

0 commit comments

Comments
 (0)