erzeugen Randomly einen Kontext
einfach einen geeigneten zufälligen monadischen Kontext erzeugen. Wenn du Tests durchführst, kannst du nicht in einem imaginären Monadenland bleiben, du musst dir tatsächlich eine bestimmte Monade aussuchen, um sie zu testen. Hast du eine Liste Monade ausgewählt? Erzeugt zufällig eine Liste als Kontext. Eine staatliche Monade? Erzeugt zufällig einen Wert des Zustandstyps für den Kontext. Schriftsteller? Erzeugt zufällig ein Protokoll.
erzeugen Randomly eine Aktion
Also, was tun Sie generieren möchten, genau? Wenn es sich um eine monadische Aktion handelt, müssen Sie eine Möglichkeit bereitstellen, monadische Aktionen für Ihre spezielle Monade zu erstellen, basierend auf seinen einzigartigen Primitiven. z.B. zufällig generierte Statusaktionen sollten zufällig aus den State-Primitiven get
und put
erstellt werden.
sie Sammen
Wenn Sie Quick Fähigkeiten verwenden, um eine Funktion f
, die eine einstellige Aktion erzeugt zu erzeugen und Quick Check verwenden, um einen Kontext c
zu erzeugen, dann können Sie einfach c >>= f
sie zusammen zu stellen. Oder Sie können einfach die Aktion a
direkt generieren, und tun Sie c >> a
.