apple/Testing, Xcode, Environment

[XCTest] Quick 과 Nimble에 대해서 알아보자.

lgvv 2022. 2. 20. 14:45

Quick / Nimble 

 

 

Quick / Nimble에 대해서 알아보자.

이번에 XCTest를 공부하다가 Quick과 Nimble이라는게 있어서 한번 다시 공부해보도록 하자.

 

https://github.com/Quick/Nimble

 

GitHub - Quick/Nimble: A Matcher Framework for Swift and Objective-C

A Matcher Framework for Swift and Objective-C. Contribute to Quick/Nimble development by creating an account on GitHub.

github.com

 

https://github.com/Quick/Quick/tree/main/Documentation/ko-kr

 

GitHub - Quick/Quick: The Swift (and Objective-C) testing framework.

The Swift (and Objective-C) testing framework. Contribute to Quick/Quick development by creating an account on GitHub.

github.com

 

 

✅ 기존에 XCTest를 작성하면서 BDD로 작성했다. BDD로 작성하다 보니까 중복되는 코드 부분이 많이 생겼어서 나는 이걸 함수로 만들어서 사용할 수 있게 설계해서 사용했었는데, 위에 것들을 한번 보도록 하자~!

 

✅ Quick

이름부터가 뭔가 퀵??이라서 빠르게 해줄거 같아서 인상적이다. Quick은 BDD를 기반으로 설계되어 있다.

 

TestCode 처음 만들었을 때

대충 이렇게 된다.

 

그렇다면 Quick을 사용하면 어떻게 될까?

Quick

Spec자체가 테스트 케이스가 된다.

 

QuickSpec이 XCTestCase의 Subclass이므로 가능한 일!!

 

아까 Quick은 BDD에 맞게 나뉜다고 했지?

 - Given 👉 Describe

 - When 👉 Context 

 - It 👉 Then

 

✅ Quick로 작성한 예시

   override func spec() {
        describe("BDD로 따지면 Given") {
            context("BDD로 따지면 When.") {
                it("BDD로 따지면 Then") {
                    // Assertion 코드를 작성합니다.
                }
            }
        }
    }

 

실행하면 아래 사진처럼 나옵니다~!

 

 

✅ Nimble

Quick 좋다! 그럼 Nimble을 이용해서 더 좋게 만들어보자.

 

아 Nimble이란 XCTest의 assertion의 단점을 보완한 Assertion(Matcher) 프레임워크라고 한다.

아무튼 간단하고 직관적으로 보여서 편해편해

Nimble 활용

 

 

(참고)

https://zeddios.tistory.com/1245

 

Swift ) Quick / Nimble 간단하게 사용해보기

안녕하세요 :) Zedd입니다. 해가 진짜 길어졌네요..아직 밖이 밝아........ 오늘은 Quick과 Nimble 간단히 사용해보기..!! [Quick] - Unit tests에서 사용 - Behavior-driven development(BDD) framework. [Nimbl..

zeddios.tistory.com