# Unit Test 활동학습 ## isValidLottoNumbers(of:) ```swift func test_입력된숫자가6개가_아닐때_False이다() { // given let input1 = [1, 2, 3, 4, 5, 6, 7] let input2 = [1, 2, 3, 4, 5] let expectation = false // when let result1 = sut.isValidLottoNumbers(of: input1) let result2 = sut.isValidLottoNumbers(of: input2) // then XCTAssertEqual(result1, expectation) XCTAssertEqual(result2, expectation) } func test_배열안의숫자가_중복값을포함해서6개라면_False이다() { // given let input = [1, 2, 3, 3, 4, 5] let expectation = false // when let result = sut.isValidLottoNumbers(of: input) // then XCTAssertEqual(result, expectation) } func test_배열안의숫자가_1에서45사이에_포함되지않으면_False이다() { // given let input1 = [0, 1, 2, 3, 4, 5] let input2 = [1, 2, 3, 4, 5, 46] let expectation = false // when let result1 = sut.isValidLottoNumbers(of: input1) let result2 = sut.isValidLottoNumbers(of: input2) // then XCTAssertEqual(result1, false) XCTAssertEqual(result2, false) } func test_6개의숫자가_모두1부터45사이의숫자일경우_True이다() { // given let input = [1, 3, 10, 20, 30, 45] let expectation = true // when let result = sut.isValidLottoNumbers(of: input) // then XCTAssertEqual(result, expectation) } ``` <br/> ## makeRandomLottoNumberArray() ```swift func test_반환값배열이_유효한값이면_True이다() { // given let randomNumbers = sut.makeRandomLottoNumberArray() let expectation = true // when let result = sut.isValidLottoNumbers(of: randomNumbers) // then XCTAssertEqual(result, expectation) } ``` <br/> ## countMatchingNumber(user:winner:) ```swift func test_user의로또숫자가_유효하지않다면_invalidNumbers에러를던진다() { // when let userNumbers = [1, 2, 3, 4, 5, 46] let winnerNumbers = [1, 2, 3, 4, 5, 6] let expectation = LottoMachineError.invalidNumbers let result = LottoMachineError? // when XCTAssertThrowsError( try sut.countMatchingNumber(user: userNumbers, winner: winnerNumbers)){ result = $0 } // then XCTAssertEqual(result, expectation) } func test_winner로또숫자가_유효하지않다면_invalidNumbers에러를던진다() { // given let userNumbers = [1, 2, 3, 4, 5, 6] let winnerNumbers = [1, 2, 3, 4, 5, 46] let expectation = LottoMachineError.invalidNumbers let result = LottoMachineError? // when XCTAssertThrowsError( try sut.countMatchingNumber(user: userNumbers, winner: winnerNumbers)) { result = $0 } // then XCTAssertEqual(result, expectation) } func test_user와winner로또숫자가_유효할때_겹치는번호의개수를전달한다() { // given let userNumbers = [1, 2, 3, 4, 5, 6] let winnerNumbers = [4, 5, 6, 7, 8, 9] let expectation = 3 // when let result = sut.countMatchingNumber(user:userNumbers, winner:winnerNumbers) // then XCTAssertEqual(try sut.countMatchingNumber(user:userNumbers, winner:winnerNumbers), expectation) } ```