تست در مسیر ReScript

یاد بگیرید چطور تمرین‌های ReScript خود را در Exercism تست کنید


دانلود یک تمرین

برای دانلود تمرینی که می‌خواهید روی آن کار کنید، از Exercism CLI استفاده کنید.

exercism download --track=rescript --exercise=hello-world

سپس وارد پوشه‌ی تمرین شوید.

cd /path/to/exercism/rescript/hello-world

نصب وابستگی‌ها

پیش از اجرای testها، وابستگی‌های تمرین را نصب کنید.

npm install

اجرای Testها

مجموعه‌ی test ارائه‌شده را با exercism test یا npm run test کامپایل و اجرا کنید.

درک نتایج Test

test runner هر اجرای test را با وضعیت موفق یا ناموفق نشان می‌دهد.

1/3: no name given
  PASS - no name given
2/3: a name given
  FAIL - a name given
    ---
    operator: equal
    left:  One for you, one for me.
    right: One for Alice, one for me.
    ...
3/3: another name given
  FAIL - another name given
    ---
    operator: equal
    left:  One for you, one for me.
    right: One for Bob, one for me.
    ...

# Ran 3 tests (3 assertions)
# 1 passed
# 2 failed

left چیزی است که code شما برگردانده است. right چیزی است که test انتظار داشته است.

درک ساختار تمرین

two-fer/
├── src/
│   ├── TwoFer.res   // your solution goes here
│   └── TwoFer.resi  // the optional interface file containing signatures
├── tests/
│   └── TwoFer_test.res // your test suite
├── package.json // used to install project dependencies
└── ...

TwoFer.resi در اینجا یک فایل رابط اختیاری است. وقتی وجود داشته باشد، امضاهای تابعی را تعریف می‌کند که راه‌حل شما باید آن‌ها را برآورده کند و می‌تواند راهنمایی باشد برای اینکه چه چیزی را پیاده‌سازی کنید.

برای نمونه، اگر فایل رابط این را اعلام کند:

let hello: unit => string

پیاده‌سازی شما باید این را تعریف کند:

let hello = () => "Hello, World!"

خطاهای کامپایلر

اگر code شما کامپایل نشود، کامپایلر ReScript پیام‌های خطای مفصلی همراه با مکان دقیق و نوع‌های مورد انتظار تولید می‌کند.

  We've found a bug for you!

  1 │ let x: string = 42

  This has type: int
  But it's expected to have type: string

  You can convert int to string with Int.toString.

پیام خطا را با دقت بخوانید، چون معمولاً مستقیماً به مشکل اشاره می‌کند.