Add test for some movements - #56
Conversation
|
|
||
| pub fn handle_events(app: &mut App) -> Result<bool> { | ||
| let event = event::read()?; | ||
| pub fn handle_events(app: &mut App, event: Event) -> Result<bool> { |
There was a problem hiding this comment.
Essa eh a principal mudanca que permite rodar esse teste sem um terminal
| @@ -0,0 +1,3 @@ | |||
| Not really a binary | |||
There was a problem hiding this comment.
Um arquivo qualquer de teste. talvez de para nao ter ele e gerar um arquivo on the fly
|
|
||
| /// Page size is dynamically calculated as: | ||
| /// frame height - (command line + status line + header) * bytes per line | ||
| pub fn update_page_size(app: &mut App, height: u16) { |
There was a problem hiding this comment.
extrai como funcao, pq sem rodar isso o page_end e current_size ficam setados em zero e da problema no teste.
Acho que o ideal seria o App::new() ja gerar um app pronto para usar. mas eu mudaria isso depois so
| // (name, initial offset, key code, (expected cursor x, expected cursor y), new_offset) | ||
| let cases = [ | ||
| // right | ||
| ("right", 0, Right, (1, 0), 1), |
There was a problem hiding this comment.
Eu costumo gostar de estruturar os testes assim: uma lista de casos e um for loop testando todos.
Eu acho que ajuda a deixar mais facil de adicionar mais casos parecidos depois.
Mas tem gente que prefere um teste separado por caso, nao sei o que voce prefere 🤷
There was a problem hiding this comment.
Bem legal essa abordagem. Nunca tinha visto, mas gostei. Bem mais rápido para escrever novos testes! :)
There was a problem hiding this comment.
muito bom mesmo, eu faço isso em python com pytest.mark.parametrize, fica bem legal para ampliar a cobertura no longo prazo.
Apesar disso não ser suportado nativamente por Rust, também dá pra ter um cenário parecido usando isso
https://crates.io/crates/rstest#:~:text=42)%3B%0A%7D-,Parametrize,-You%20can%20also
Boa, que bom que voce viu isso. esqueci mesmo. ja tirei |
|
Perfeito, obrigado! |
Adicionei um teste para os movimentos basicos como eu tinha dito