rápida - sistema iOS vem com as notas de estudo de teste de unidade

fundo

desenvolvimento de processos para clientes iOS IM muitas vezes precisam de lógica de negócios de teste dentro do SDK, como cabeçalho de protocolo está correto, você precisa se comunicar com o servidor de depuração-lo. Desta vez, se você escrever uma página, clique no botão paga através, parecia mais supérfluo. Então eu penso rápido como usar testes unitários, registro aqui.

MacOS: 10.15.3
Xcode: 11.3.1
Última atualização: 2020/03/16

passo

Criar um projeto de teste de unidade

Arquivo-> Novo-> alvo ...
Selecione Unidade de Teste Bundle
Unidade nome do projeto de teste, o padrão pode ser diretamente
padrão direta, acabamento pode ser.

Criado

Criar um arquivos de teste de unidade

No projeto de teste de unidade recém-criado, clique com o botão direito.
Novo arquivo...
Selecione a Unidade Test Case Classe
Depois de introduzir o nome do arquivo de teste + testes, junto para a próxima etapa
nome do arquivo Testes Unitários
Criado

código de teste de escrita

Primeiro, a introdução do módulo a ser testado (nome do projeto):

@testable import CoffeeChat // @testable 可访问 internal 属性方法

Método de teste de gravação (similar à entrada função principal):

// 格式为 test+名字,否则无法运行,如下
func testConnect(){
    let client = CIMClient()
    client.connect(ip: "10.0.106.117", port:8000)
    sleep(3)
}

O código completo é o seguinte:

//
//  CIMClientTests.swift
//  CoffchatTests
//
//  Created by xuyingchun on 2020/3/16.
//  Copyright © 2020 Xuyingchun Inc. All rights reserved.
//

import XCTest

@testable import Coffchat

class CIMClientTests: XCTestCase {
    func testConnect(){
        let client = CIMClient()
        client.connect(ip: "10.0.106.117", port:8000)
        
        sleep(3)
    }
}

execução do teste

Para testar a função, clique no ícone da linha de posição de número "Run".
Exemplos
É claro, também, das seguintes formas:
comando de atalho + u
Atalhos

dicas
testes de unidade pode ser dividido em módulos, pode ser dividido em pequena função, o suficiente feliz

Isto é usado no sistema vem com o teste de unidade, existem outros programas on-line

Os resultados do teste e lista:
Lista de unidade de teste

projeto de teste de unidade de exclusão

  1. unidade de exclusão pasta de teste, como "CoffchatTests"
  2. alvo de exclusão, como se segue (somente se você excluir uma pasta, sem excluir a meta vai reclamar)
    1. Clique no nome do projeto
    2. Clique no "lado esquerdo para expandir"
    3. Botão direito do mouse excluir no alvo a ser eliminado
      Como eliminar um alvo de teste de unidade

observação

comum Método de Teste Unidade

XCTAssert(expression, format...)当expression求值为TRUE时通过

outra referência

XCTFail(format…) 生成一个失败的测试;
XCTAssertNil(a1, format...)为空判断,a1为空时通过,反之不通过;
XCTAssertNotNil(a1, format…)不为空判断,a1不为空时通过,反之不通过;
XCTAssert(expression, format...)当expression求值为TRUE时通过;
XCTAssertTrue(expression, format...)当expression求值为TRUE时通过;
XCTAssertFalse(expression, format...)当expression求值为False时通过;
XCTAssertEqualObjects(a1, a2, format...)判断相等,[a1 isEqual:a2]值为TRUE时通过,其中一个不为空时,不通过;
XCTAssertNotEqualObjects(a1, a2, format...)判断不等,[a1 isEqual:a2]值为False时通过;
XCTAssertEqual(a1, a2, format...)判断相等(当a1和a2是 C语言标量、结构体或联合体时使用, 判断的是变量的地址,如果地址相同则返回TRUE,否则返回NO);
XCTAssertNotEqual(a1, a2, format...)判断不等(当a1和a2是 C语言标量、结构体或联合体时使用);
XCTAssertEqualWithAccuracy(a1, a2, accuracy, format...)判断相等,(double或float类型)提供一个误差范围,当在误差范围(+/-accuracy)以内相等时通过测试;
XCTAssertNotEqualWithAccuracy(a1, a2, accuracy, format...) 判断不等,(double或float类型)提供一个误差范围,当在误差范围以内不等时通过测试;
XCTAssertThrows(expression, format...)异常测试,当expression发生异常时通过;反之不通过;(很变态) XCTAssertThrowsSpecific(expression, specificException, format...) 异常测试,当expression发生specificException异常时通过;反之发生其他异常或不发生异常均不通过;
XCTAssertThrowsSpecificNamed(expression, specificException, exception_name, format...)异常测试,当expression发生具体异常、具体异常名称的异常时通过测试,反之不通过;
XCTAssertNoThrow(expression, format…)异常测试,当expression没有发生异常时通过测试;
XCTAssertNoThrowSpecific(expression, specificException, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过;
XCTAssertNoThrowSpecificNamed(expression, specificException, exception_name, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过

Referência: https://www.jianshu.com/p/be32739d8aae

Publicado 19 artigos originais · ganhou elogios 9 · vê 10000 +

Acho que você gosta

Origin blog.csdn.net/xmcy001122/article/details/104897575
Recomendado
Clasificación