Ich schreibe eine Haskell JSON API und möchte einige Tests schreiben. Die Sache ist wirklich IO-schwer, also denke ich, dass es am sinnvollsten ist, einige Funktionstests zu schreiben: (Foo hinzufügen, sehen, ob / foos / gibt es zurück), usw.
Ich habe natürlich über QuickCheck gelesen, aber es scheint sich auf das Testen von reinem Code zu konzentrieren.
Wie sollte ich Funktionstests schreiben / ausführen, die eine API testen müssen? Wenn es darauf ankommt, verwende ich Scotty / WAI . Obwohl ein Beispiel wäre toll, ein gutes Paar Links und einige Tipps wären in Ordnung.
Ich habe es noch nie benutzt, aber QuickCheck unterstützt tatsächlich das Testen von monadischem Code. Sehen Sie sich IO-Aktionen mit Monadic QuickCheck testen an, um weitere Informationen zu erhalten. Wenn Ihre API einige Invarianten hat, die leicht auszudrücken sind, ist dies wahrscheinlich eine gute Möglichkeit, sie zu testen. (Nach meiner Erfahrung mit reinem Code deckt QuickCheck mehr Fälle ab, als ich mir vorstellen kann, was es sehr nützlich macht.)
Tags und Links haskell unit-testing testing