<p>From Lars' answer in the Q&amp;A:</p>
<ul>
<li>First of all, you can still use Haskell in <a href="https://github.com/dQuadrant/kuber" rel="nofollow noreferrer">Kuber</a> to do the off-chain part.</li>
<li>As a side note, it is likely that GeniusYield will soon release a PAB replacement that is also a Haskell library.</li>
<li>If you want to write tests in emulator traces, you still need Plutus-Apps and understand the &quot;contract monad&quot;.  But there are alternatives, like <a href="https://github.com/mlabs-haskell/plutus-simple-model" rel="nofollow noreferrer">Plutus simple model</a> developed by MLabs.</li>
<li>Plutus simple model is also a Haskell library and is the one used in this course (PPP fourth cohort).  It doesn't use the contract monad and is easier to use than emulator traces.  A forthcoming lecture on testing will use &quot;Plutus simple model&quot; (as do the tests in the homeworks).</li>
<li>Admittedly emulator traces are still quite nice, but it is unfortunate that you need all the theory behind the contract monad (and for this reason they will not be covered in this course).</li>
</ul>

CC BY-SA 4.0
2023-03-15T17:16:54.843Z
2023-03-16T04:11:44.347Z
2023-03-16T04:11:44.347Z
a_juggler
<p>It was mentioned in lecture 1 that in this fourth cohort of the PPP we won't need to learn to write off-chain code in Plutus/Haskell. Nevertheless it appears that testing uses the emulator and it seems to me that Plutus off-chain code might be relevant for writing testing scenarios. Is this correct?  Would knowing about the &quot;contract monad&quot; be useful for writing tests?</p>

<plutus-pioneer-program>
Is Plutus off-chain code relevant for testing?
# Is Plutus off-chain code relevant for testing?

(Asked by: username_0 on 2023-02-28)

It was mentioned in lecture 1 that in this fourth cohort of the PPP we won't need to learn to write off-chain code in Plutus/Haskell. Nevertheless it appears that testing uses the emulator and it seems to me that Plutus off-chain code might be relevant for writing testing scenarios. Is this correct? Would knowing about the "contract monad" be useful for writing tests?

**Tags:** plutus-pioneer-program

---

## 1 answers

### Answer by username_0 on 2023-03-15. Score: 2 | Accepted answer

From Lars' answer in the Q&A:

* First of all, you can still use Haskell in [Kuber](https://github.com/dQuadrant/kuber) to do the off-chain part.
* As a side note, it is likely that GeniusYield will soon release a PAB replacement that is also a Haskell library.
* If you want to write tests in emulator traces, you still need Plutus-Apps and understand the "contract monad". But there are alternatives, like [Plutus simple model](https://github.com/mlabs-haskell/plutus-simple-model) developed by MLabs.
* Plutus simple model is also a Haskell library and is the one used in this course (PPP fourth cohort). It doesn't use the contract monad and is easier to use than emulator traces. A forthcoming lecture on testing will use "Plutus simple model" (as do the tests in the homeworks).
* Admittedly emulator traces are still quite nice, but it is unfortunate that you need all the theory behind the contract monad (and for this reason they will not be covered in this course).


---

