[Off] Code coverage para pawn?
#8

Quote:
Originally Posted by Kamper
Посмотреть сообщение
Tem um trecho de cуdigo para poder me mostrar?
Aqui neste trecho vocк pode ver a parte baseada em simulaзхes(OnPlayerEvent, clickTextDraw, inputDialog), e tambйm os testes comuns ASSERT

Atualmente tenho feito apenas estes eventos, e algumas hooks bбsicas, eu pretendo ir incrementando conforme for necessбrio.

PHP код:
#include <tests>
#include <hooks>
/*
    Passos
1. Adcionar o player(nгo registrado)
2. Testar outros botхes de textdraws
3. Registrar o player
4. Checar no banco de dados se os dados foram inseridos
5. Setar valores nas variaveis dele
6. Remover o player
7. Checar no DB se os dados sгo iguais aos setados
8. Conectar o player(registrado), no id do player acima
9. Checar se variaveis foram limpas
10. Logar o player
11. Mudar valor das variaveis
12. Desconectar o player
13. Checar no DB se os valores foram atualizados
*/
static uvar(string:      test_String[MAX_PLAYERS][15])        = "string",     "\0";
static 
uvar(Float:       test_Float[MAX_PLAYERS])             = "float",       0.0;
static 
uvar(Float:       test_ArrayFloat[MAX_PLAYERS][15])    = "array-float"0.0;
static 
uvar(bool:        test_Bool[MAX_PLAYERS])              = "bool",        false;
static 
uvar(bool:        test_ArrayBool[MAX_PLAYERS][15])     = "array-bool",  false;
static 
uvar(             test_Int[MAX_PLAYERS])               = "int",          0;
static 
uvar(             test_ArrayInt[MAX_PLAYERS][15])      = "array-int",   0;
static 
uvar(BitArray:    test_BitArray<MAX_PLAYERS>)          = "bitarray",    false;
Test:Init()
{
        const 
playerid 0;
    
// 1. Adcionamos um player(nгo registrado)
    
AddFakePlayer(playerid"Unknown_User""127.0.0.1", {130230});
}
hook OnPlayerEvent(playeridplayerEvents:eventid)
{
    static 
step;
    if(
eventid == SELECT_TEXTDRAW)
    {
        
// 2. Testar outro botгo
        
if(!step)
        {
            ++
step;
            
clickTextDraw(playeridloginSignIn[2]);
        }
        else
        {
            
// 3. Registrar o player
            
step 0;
            
clickTextDraw(playeridloginSignUp[2]);
        }
        return;
    }
    
// Certificar de que quando clica no botгo logar, sem estar conectado nada aconteзa
    
ASSERT(!step);
    if(
eventid == DIALOG_INPUT)
    {
        
// 3. Registrar o player
        
inputDialog(playerid"12345");
    }
}
hook OnPlayerLogin(playeridloginType:type)
{
    
// 3. Registrar o player
    
if(type == login_byRegister)
    {
        
// Seleciona os dados da tabela
        
format(gs_QueryBuffersizeof(gs_QueryBuffer), "SELECT * from `"#USERS_TABLE"` where `id`='%d';", getPlayerIDG(playerid));
        
new Cache:cache mysql_query(cHandlegs_QueryBuffer);
        
// Obtem o numero de linhas existentes
        
new rows;
        
cache_get_row_count(rows);
        
        
// Certificar que a linha existe
        
ASSERT(rows == 1);
        
// 4. Checa no banco de dados se os dados foram inseridos
        
new 
            
value_Arrays[15*15], // Salvo em strings, depois convertidos para indices
            
value_String[15],
            
Float:value_Float,
            
Float:value_ArrayFloat[15],
            
value_Bool,
            
bool:value_ArrayBool[15],
            
value_Int,
            
value_ArrayInt[15],
            
value_BitArray
        
;
        
cache_get_value_name(0,       "string",      value_String);
        
ASSERT(strcmp(value_Stringtest_String[playerid]));
        
cache_get_value_name_float(0"float",       value_Float);
        
ASSERT(value_Float == test_Float[playerid]);
        
cache_get_value_name(0,       "array-float"value_Arrays);
        
sscanf(value_Arrays"p<,>a<f>[15]"value_ArrayFloat)
        
ASSERT(arraycmp(value_ArrayFloattest_ArrayFloat[plyerid]));
        
cache_get_value_name_int(0,   "bool",        value_Bool);
        
ASSERT(value_Bool == test_Bool[playerid]);
        
cache_get_value_name(0,       "array-bool",  value_Arrays);
        
sscanf(value_Arrays"p<,>a<d>[15]"_:value_ArrayBool)
        
ASSERT(arraycmp(value_ArrayBooltest_ArrayBool[plyerid]));
        
cache_get_value_name_int(0,   "int",         value_Int);
        
ASSERT(value_Int == test_Int[playerid]);
        
cache_get_value_name(0,       "array-int",   value_Arrays);
        
sscanf(value_Arrays"p<,>a<d>[15]"value_ArrayInt)
        
ASSERT(arraycmp(value_ArrayInttest_ArrayInt[plyerid]));
        
cache_get_value_name_int(0,   "bitarray",    value_BitArray);
        
ASSERT(value_BitArray == _:Bit_Get(test_BitArrayplayerid));
    }

Reply


Messages In This Thread
Code coverage para pawn? - by Dayvison_ - 23.04.2017, 00:46
Re: Code coverage para pawn? - by PT - 23.04.2017, 12:13
Re: Code coverage para pawn? - by Adiiti - 23.04.2017, 13:19
Re: Code coverage para pawn? - by Bruno13 - 23.04.2017, 15:14
Re: Code coverage para pawn? - by Kamper - 23.04.2017, 22:44
Re: Code coverage para pawn? - by Dayvison_ - 24.04.2017, 16:24
Re: Code coverage para pawn? - by Kamper - 25.04.2017, 00:03
Re: Code coverage para pawn? - by Dayvison_ - 25.04.2017, 02:31

Forum Jump:


Users browsing this thread: 3 Guest(s)