Ritenuto in fatto e considerando in diritto:
1.
Con petizione del 26 aprile 2007, depositata presso la Pretura di Lugano, la B._ SA ha chiesto che fosse accertata l'inesistenza del debito di fr. 23'375.-- oggetto di un precetto esecutivo fattole notificare da A._ per i difetti della cappa di aspirazione istallata nella cucina della sua abitazione. Il Pretore aggiunto ha accolto la petizione con sentenza del 26 marzo 2012, accertando l'inesistenza del predetto debito e ordinando all'Ufficio di esecuzione di Lugano di cancellare l'esecuzione a carico dell'attrice.
Il 12 agosto 2013 la II Camera civile del Tribunale di appello del Cantone Ticino ha respinto, nella misura in cui era ricevibile, l'appello di A._.
2.
A._ insorge davanti al Tribunale federale con ricorso sussidiario in materia costituzionale del 16 settembre 2013 chiedendo che la sentenza cantonale sia annullata e che gli atti siano rinviati al Tribunale di appello per nuovo giudizio.
La B._ SA propone di respingere il ricorso con risposta del 23 ottobre 2013, mentre l'autorità cantonale non ha preso posizione.
Le parti hanno spontaneamente presentato osservazioni di replica e duplica.
3.
Non essendo raggiunto il valore litigioso minimo previsto dall'<ref-law> per l'inoltro di un ricorso in materia civile, la sentenza cantonale, finale e di ultima istanza, è impugnabile soltanto mediante ricorso sussidiario in materia costituzionale (<ref-law>). Per la motivazione di tale rimedio di diritto, l'<ref-law> rimanda all'<ref-law>. Il ricorso deve quindi indicare in modo chiaro, senza rinvii ad altri atti, i diritti che si pretendono violati e spiegare in cosa consiste la violazione; critiche appellatorie non sono ammesse (<ref-ruling> consid. 1.3.1; 134 Il 244 consid. 2.2; <ref-ruling> consid. 3.2). Inoltre, qualora una sentenza - o parte di essa - si fondi su più motivazioni alternative ed indipendenti, occorre contestarle tutte con censure che soddisfano le predette esigenze di motivazione, sotto pena d'inammissibilità (<ref-ruling> consid. 3.4; <ref-ruling> consid. 4.1.4; <ref-ruling> consid. 6.3).
4.
Il Tribunale di appello - confermando in sostanza il giudizio del Pretore aggiunto - ha dapprima stabilito che il convenuto, che ne portava l'onere, non ha allegato e non ha provato né la natura dei difetti dei quali si prevale (art. 368 cpv. 2CO), né la loro segnalazione tempestiva all'appaltatore (<ref-law>). Esso ha inoltre considerato - riprendendo anche su questo punto l'avviso del Pretore aggiunto - che " l'appellante neppure accenna agli elementi che permetterebbero di comprendere come egli abbia quantificato la pretesa fatta valere in ragione dei difetti dell'opera, cifrata in fr. 23'375.-- ". La Corte cantonale ha quindi ritenuto che il giudice di prime cure non era incorso in una violazione del diritto di essere sentito per aver limitato l'istruttoria in ragione delle mancate allegazioni del convenuto.
Nella fattispecie il ricorrente censura la prima delle suddette motivazio ni,attinente alla natura dei difetti e alla loro tempestiva segnalazione all'opponente, che ritiene arbitraria e lesiva del diritto di essere sentito, del diritto alla prova e del principio della parità di trattamento. Egli omette però completamente di attaccare il rimprovero mossogli di non aver in alcun modo allegato la quantificazione della sua pretesa, pur non contestando che anche ciò gli incombeva. In queste circostanze il ricorso si rivela inammissibile a causa della sua carente motivazione e non è necessario esaminare le critichevolte contro l'argomentazione principale della Corte cantonale (sopra,consid. 3).
5.
Le spese giudiziarie e le ripetibili seguono la soccombenza (art. 66 cpv. 1 e 68 cpv. 1 LTF).

per questi motivi, il Tribunale federale pronuncia:
1.
Il ricorso è inammissibile.
2.
Le spese giudiziarie di fr. 2'000.-- sono poste a carico del ricorrente, il quale rifonderà all'opponente fr. 2'500.-- a titolo di ripetibili per la procedura innanzi al Tribunale federale.
3.
Comunicazione ai patrocinatori delle parti e alla II Camera civile del Tribunale d'appello del Cantone Ticino.