Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
何かと理由(時間がない || メンテが面倒)をつけて避けがちなユニット試験。 未だ関わる開発現場で全くユニット試験が書かれていないことも多い。 とは言え、急な仕様変更に伴うデグレ確認や後々の保守開発を考えれば必須かなと。 PHPでユニット試験といえばPHPUnitが有名。 CakePHP3上でコントローラのユニット試験を動かす時にちょっと詰まりました。 その時のメモ書き程度に残しておきます。 動作環境 PHP7.2 CakePHP3.6.9 MySQL5.7 環境構築 composerのパスを通していること. // CakePHP3初期化(プロジェクトが無い人) composer self-update && composer create-project --prefer-dist cakephp/app xxxx // PHPUnitインストール composer require --
use Illuminate\Notifications\AnonymousNotifiable; Notification::fake(); // : // テスト対象のロジック実行 // : Notification::assertSentTo( new AnonymousNotifiable(), InvoicePaid::class, // 対象の Notification class function($notification, $channels, $notifiable) { return $notifiable->routes['mail'] == 'test@example.com'; } ); 前提1:On-Demand Notifications とは? メール送信のような「通知」を行う際には通常、 Illuminate\Notifications\Notifiab
Laravelのバージョンを色々使ってると細かい所で、このバージョンの時は出来て、このバージョンのときは出来ないみたいな状況になるので、思った所を復習して置こうと思います。 今回は、テストコードを書く時に不可欠なfactory系でrelationのfactoryを使用時です。 まず、Model Factories が入ったのは、バージョン5.1からになります。 良くあるサンプルで、ブログとコメントのfactory例を上げてみます。 $factory->define(App\Post::class, function ($faker) { return [ 'title' => $faker->sentence, 'body' => $faker->sentence ]; }); $factory->define(App\Comment::class, function ($faker) {
前置き さて、前置きですが、モナドと書きましたが実際にはモナドではなく、モナドのようなものです。 ここで言うモナドというものは、Scalaにおけるfor式で扱えるように、以下のメソッドを実装している型のことを指します。 map/flatMap (つまり、for式で使える型、ifフィルターとyieldではないfor式を除く) あと、記事中の英語は適当です。 はじめに どこかで見た便利な書き方としてfor式のネストした形式を紹介します。(具体的な呼び名は知らない。勝手にネストfor式とか言っておく。) Scalaでのエラーハンドリングはキモくなりがちです。 Either、Try、Optionの入り混ざったものを一つのfor式で扱うのは困難で、 最初にfor式中で使用したモナドに、以降も制限されてしまいます。 scala> { | for { | result <- Future { Try("
@import helper._ @main("サンプル"){ <font size=5>■サンプル画面</font><br/> @helper.form( action = helper.CSRF(routes.SampleController.sampleAction) ){ <input type = "hidden" name = "idParam" value="test" /> <input type = "submit" value="送信する"> } } package controllers import javax.inject._ import play.api._ import play.api.mvc._ import play.api.data._ import play.api.i18n.I18nSupport import play.api.i18n._ @
go言語でOAuth2認証 最近,go言語でGithubとQiitaのOauth2認証を実装することがあったのでメモ書き程度に書いていきます. OAuth2認証のフロー OAuth2のフローは以下のようになっています(Githubの場合) Githubにコードをリクエスト あらかじめ指定しておいたページに自動でリダイレクト リダイレクト時にURLにパラメータで渡されたcodeを使ってアクセストークンをリクエスト 3のレスポンスのbodyからアクセストークンを取得 アクセストークンを使ってAPIを使用 ざっくりと以上のような流れで認証します. Githubの場合 まず,Githubのアプリに登録します. そこで得られたClientIDとClientSecretをメモなどして覚えておきましょう. リダイレクト先のURLは自分のサイトの適当なURLを指定しましょう(例http://自分のサイトU
はじめに TruffleやOpenZeppelinを利用して発行したERC20ベースのTokenを送金するのに、MistやMetamaskを使うことがあると思います。 本記事ではこれらを用いず、コードベースで作成したトランザクションをネットワークに送る方法を行います。 EthereumのTransactionについて Ethereum yellow paper の4-2に詳細が書いてありますが、トランザクションは、 nonce: 送信者が今までに送信したTransactionの数 gasPrice:Transactionが実行された結果として消費されるgasの価格 (wei/gas) gasLimit:Transactionが実行される前に支払われるgas. このgasLimitを超えてTransactionが実行されるということはない to:送信先。今回の場合だとERC20ベースToke
Go勉強会 Webアプリケーション編 #1で使おうと思っているGo Web Examplesの和訳です。ほぼGoogle翻訳ですが、リンク等も整理された状態であると便利だと思い作りました。前回(HTTP Server)、次回: Go Web Examplesの和訳 (Templates)。 はじめに Goのnet/httpパッケージは、HTTPプロトコルに多くの機能を提供します。それがうまく行かないことの1つは、リクエストURLを単一のパラメータに分割するような複雑なリクエストルーティングです。幸運なことに、これには非常に一般的なパッケージがあります。これは、Goコミュニティの優れたコード品質でよく知られています。この例では、gorilla/muxパッケージを使用して、名前付きパラメータ、GET/POSTハンドラ、およびドメイン制限を使用してルートを作成する方法を示します。 gorilla
※この記事は人狼GM支援ツールを作る(環境構築編)の続きとなります。 はじめに 前回、Laravel Homesteadを利用してVM上に環境を構築しました。 今回から実装に入るのですが、まずは私が最初につまづいたDBのマイグレーションとLaravelのモデルから整理していきます。 以下、各ソフトウェアのバージョンは PHP 7.2.5 MySQL 5.7.22 Laravel 5.6 です。 マイグレーション 今回用意した環境(Laravel Homestead)には、デフォルトでMySQLが用意されています。ユーザ名とパスワードもあらかじめ設定してある状態です。 接続情報はプロジェクト内の.envファイルに書かれています 今回は、あらかじめ用意したテーブル定義に沿ってテーブルを作成していきます。 テーブル定義の例は以下のようになります。 room表 カラム 型 制約
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く