1. ホーム
  2. unit-testing

[解決済み] F#の開発とユニットテスト?[クローズド]

2022-10-13 12:31:10

質問

私はF#を使い始めたばかりで、これが私にとって初めての関数型言語です。私はこれまでほぼ独占的に C# で作業してきましたが、F# は私がコードを書く方法を再考するきっかけとなり、とても楽しいです。私が少し戸惑った点は、コードを書くプロセスの変化です。私は今C#で何年もTDDを使用していますが、自分がどこにいるのかを知るためにユニットテストを持っていることに本当に感謝しています。

これまでのところ、F# での私のプロセスは、いくつかの関数を書き、それらが動作すると合理的に確信できるまで対話型コンソールで遊び、微調整して組み合わせるというものでした。これは、Euler Project のような小規模な問題ではうまくいきますが、この方法で大規模なものを構築することは想像できません。

F#プログラムのユニットテストやテストスイート構築にどのようにアプローチしているのでしょうか?TDD に相当するものはあるのでしょうか。どんなポインタや考えもありがたいです。

どのように解決するのですか?

テスト駆動開発者は、F#のような関数型言語で快適に開発できるはずです。決定論的に再現可能な結果を与える小さな関数は、ユニットテストに完全に適しています。また、F# 言語には、テストを書きやすくする機能があります。例えば オブジェクト式 . インターフェイス型を入力とする関数の偽物を非常に簡単に書くことができます。

どちらかというと、F#は第一級のオブジェクト指向言語であり、C#でTDDを行うときに使用するのと同じツールやトリックを使用することができます。また、F#で書かれた、あるいはF#専用のテストツールもいくつかあります。

Matthew Podwysockiが書いた素晴らしい シリーズ を書きました。ボブおじさんもまた、示唆に富む記事を書いています。 はこちら .