Kiwi 직접 체험

2620 단어
듣자니 키웨이는 내가 모듈화 구축을 할 때pod lib create xxxPods를 실행할 때 문제가 생겼다고 한다.
Which testing frameworks will you use? [ Specta / Kiwi / None ]

Kiwi
Kiwi는 BDD를 사상으로 하는 가독성이 좋은 테스트 프레임워크로 그 밑바닥은 XCTEst 프레임워크로 이루어져 XCode와 결합도가 높다.
BDD
BDD는 테스트 문구를 유사한 자연언어로 바꾸는 묘사를 통해 개발자가 대중언어에 더욱 부합되는 습관으로 테스트를 작성할 수 있도록 함으로써 프로젝트 인수/교부나 그 후에 스스로 수정할 때 순조롭게 진행될 수 있도록 제창한다.개발자로서의 우리의 일상 업무가 코드를 쓰는 것이라면 BDD는 사실 이야기를 하고 있는 것이다.전형적인 BDD의 테스트 용례는 완전한 삼단식 상하문을 포함하고 테스트는 대부분 Given으로 번역할 수 있다.When..Then의 격식은 읽기에 가볍고 쾌적하다.
Demo
describe(@"My initial tests", ^{

  context(@"will pass", ^{

      it(@"can do maths", ^{
        [[@1 should] beLessThan:@23];
      });
    
      it(@"can read", ^{
          [[@"team" shouldNot] containString:@"I"];
      });  
  });
});

네 가지 자주 사용하는 테스트 장면
Sequence Logic
이 경우 equal 문법 또는 should not + equal 문법을 통해 간단하고 명쾌하게 완성할 수 있습니다
it(@"can do maths", ^{
          [[vc.name should] equal:@"nimo"];
      });

Notification
이 방식은 notification을 출발하는 방식을 이용하여 Notification이 실제로 실행되었는지 테스트합니다.
it(@"can hook notification", ^{
          [[@"Notify" should] bePosted];
          
          NSNotification *myNotification = [NSNotification notificationWithName:@"Notify"
                                                                         object:nil];
          [[NSNotificationCenter defaultCenter] postNotification:myNotification];
      });

Block 장면 및 Thread 장면
이 두 장면의 테스트 방법은 일치하며 모두 실행된 후에 연산이 실행되는지 확인하고 expectFutureValue를 통해 볼 수 있습니다.
it(@"can hook thread", ^{
          [vc changeNameByThread];
          [[expectFutureValue(vc.name) shouldEventually] equal:@"kiki"];
      });
      
      it(@"can hook blocks",^{
          __weak NimoViewController *wVC = vc;
          [vc changeNameWithBlock:^(NSString *name) {
              wVC.name = name;
          }];
          [[expectFutureValue(vc.name) shouldEventually] equal:@"nimo for Block Function"];
      });

장점
우선, 코코아팟과 밀접하게 결합하여 공식적으로 팟을 창설한 후 키웨이를 생성하는 테스트 프로젝트를 직접 지원한다.그 다음으로 BDD의 특성상 문법의 가독성이 강하다.마지막으로 XCTEST를 기반으로 개발되었기 때문에 XCode에 대한 지원이 좋으므로 XCode를 통해 직접 테스트 회귀나 디버깅을 진행하면 됩니다.
Jenkins와의 결합
Todo는 XCode 수준의 디버깅과 실행을 지원하기 때문에 Jenkins가 안 돼도 상관없습니다.
더 자세한 Kiwi 소개: Kiwi에 대한 상세한 소개를 쓰려고 했는데 야옹신이 이미 전문 저서를 가지고 있는 것을 발견했기 때문에 나는 바퀴를 다시 만들지 않겠다. TDD의 iOS 개발 초보와 Kiwi의 입문 Kiwi는 진급 Mock, Stub, 파라미터 포획과 비동기 테스트를 사용한다.

좋은 웹페이지 즐겨찾기