ABCEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAF
はじめに Haskellでテスト駆動開発を行う際、純粋な関数は単体テストを書きやすいですが、 返り値がモナドの関数(この記事ではそのような関数をメソッドと呼びます)にたいして単体テストを書くのは簡単ではありません。 今回、メソッドに対して単体テストを書きやすくなるライブラリ methodを作成しました。 methodとは methodでは a1 -> ... -> an -> m b型の関数のことをメソッドと呼びます。 ここでmはモナドです。(->) rモナドを除く大抵のモナドはサポートしていますが、独自のモナドをメソッドにするにはMethod型クラスを実装する必要があります。 モックの作成 methodでは任意のメソッドのモックをDSLで書くことができます。 import Test.Method import RIO (throwString) f,f' :: Int -> String
実はTimecopはいらなくなったという話題の実践編 環境 rails (5.1.5) rspec (3.7.0) やり方 helperに追記 rails_helper.rbのお好みのところに追加 RSpec.configure do |config| # 中略 config.include ActiveSupport::Testing::TimeHelpers end 使い方 travel_to で囲む context "現在時刻かどうかは" do it "こんな感じでテストをかく" do travel_to('2018-3-10 8:00'.to_time) do expect(Time.zone.now).to eq(Time.new(2018, 3, 10, 8, 0, 0)) end end end around をつかうと、複数のitにも対応できるのでそちらも便利。 conte
Plugin List - PyPI projects that match “pytest-*” are considered plugins and are listed automatically. Packages classified as inactive are excluded. This list contains 865 plugins. AFLuent - Automated fault localization tool built as a Pytest plugin. It's triggered when one or more test case fails causing it to generate a ranking of suspicious statements where the cause of the fault could possibly
「JX通信社Advent Calendar 2019」20日目の記事です。 こんにちは。2019年9月からJX通信社のエンジニアとなった鈴木(泰)です。好きな食べ物はオムライスです。 本日は、Python Clickユニットテスト・レシピ集 - CLIではじめるテスト駆動開発(その1)と題して、CLIのユニットテストのスニペットを書いてみたいと思います! "その1"とした理由は、アドカレに間に合わな(小声)・・・じゃなかった・・・この記事だけで全ての備忘録を列挙すると長くなりすぎてしまい、記事が読み難くなると判断したからです。 今後も引き続き少しづつ備忘録を紹介していければと思います。 はじめに 私はCLIをよく書きます。その理由は、バックエンドシステムの運用業務に携わっていることにあります。運用業務では様々な場面でCLIを作成します。私の場合、運用業務における手作業を自動化するため、バッ
この記事はTypeScript Advent Calendar 2019の11日目の記事です。 Go を齧ったことのある方は馴染み深いと思うのですが、Table Driven Testing という手法があります。いきなり見せます: const table = [ [1, 1, 2], [1, 2, 3], [2, 1, 3], ]; test.each(table)('.add(%i, %i)', (a, b, expected) => { expect(a + b).toBe(expected); }); こんな感じで「テストケースひとつひとつを test(...) 等と記述するのではなく、引数と予期する結果を配列として持っておいてテストコードの共通化を図る」手法です。同じ関数に関して書かなければならないテストケースが多い場合に、ごちゃごちゃしがちなテストコードをすっきりさせることがで
バージョン Python 3.7.0 目次 リポジトリの実装 DBに関する処理を除去 テスト 参考文献 おまけ ディレクトリ構成 ファイルを分割しているので、ディレクトリ構成を載せておきます。 DDD_repository ├── program.py ├── test │ └── test_program.py ├── user.py ├── user_repository.py └── user_service.py import sqlite3 from typing import Union from DDD_repository.user import Username, User, UserId, FullName class UserRepository: def find(self, username: Username) -> Union[User, None]: c
Python + unittest を使って TDD (Test Driven Development) の練習(ペアプログラミング)をしていたときに,リファクタリングのサイクルでテストパターンをパラメータ化することになった.Parameterized Test にリファクタリングをするために,期待値をパラメータ化し,for の中に assert を実装した.以下はサンプルコードとなり,インプット文字列を大文字に変換する挙動を確認している.さらに「意図的に」c と e を誤った期待値に設定し,失敗するようにした.なお,今回は Python 3.7 を検証環境にした. import unittest class MyTestCase(unittest.TestCase): def test_upper(self): patterns = [ ('a', 'A'), ('b', 'B'), (
This post walks through the process of developing a CRUD-based RESTful API with Django and Django REST Framework, which is used for rapidly building RESTful APIs based on Django models. This application uses: Python v3.6.0 Django v1.11.0 Django REST Framework v3.6.2 Postgres v9.6.1 Psycopg2 v2.7.1 NOTE: Check out the third Real Python course for a more in-depth tutorial on Django REST Framework. O
$ tree . . ├── README.md ├── cms │ ├── __init__.py │ ├── admin.py │ ├── forms.py │ ├── migrations │ ├── models.py │ ├── templates │ │ ├── base.html │ │ └── cms │ │ ├── book_edit.html │ │ ├── book_list.html │ │ ├── impression_edit.html │ │ └── impression_list.html │ ├── tests │ │ ├── __init__.py │ │ ├── test_book_form.py │ │ ├── test_book_model.py │
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く