Diretório do artigo
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
padrão direta, acabamento pode ser.
Criar um arquivos de teste de unidade
No projeto de teste de unidade recém-criado, clique com o botão direito.
Depois de introduzir o nome do arquivo de teste + testes, junto para a próxima etapa
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".
É claro, também, das seguintes formas:
comando de atalho + u
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:
projeto de teste de unidade de exclusão
- unidade de exclusão pasta de teste, como "CoffchatTests"
- alvo de exclusão, como se segue (somente se você excluir uma pasta, sem excluir a meta vai reclamar)
- Clique no nome do projeto
- Clique no "lado esquerdo para expandir"
- Botão direito do mouse excluir no alvo a ser eliminado
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