タグ

TDDに関するJHashimotoのブックマーク (204)

  • 非同期プログラミング - 非同期コードの単体テスト: テストを容易にする 3 つの解決策

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 非同期コードの単体テスト: テストを容易にする 3 つの解決策 Sven Grand コード サンプルのダウンロード ここ 10 年、非同期プログラミングがますます重要になっています。CPU ベースの並列処理や I/O ベースの同時実行に非同期処理が使用され、ほぼすべてのリソースをすぐに利用できる状態にして、少ない労力で大きな成果を生み出しています。応答性の高いクライアント アプリケーションや拡張性の高いサーバー アプリケーションがすべて現実のものになっています。 ソフトウェア開発者は、同期機能を効果的に構築するために多くの設計パターンを習得していますが、非同期ソフトウェア設計のベスト プラクティスは比較的新

    非同期プログラミング - 非同期コードの単体テスト: テストを容易にする 3 つの解決策
    JHashimoto
    JHashimoto 2014/12/07
    “非同期コードの効果的な単体テストには、主に 3 つのメリットがあります。1 つはテストのメンテナンス コストが削減される点、2 つ目はテストの速度が上がる点、3 つ目はテストを実行できないというリス..."
  • 非同期プログラミング - 非同期コードの単体テスト

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 非同期コードの単体テスト Stephen Cleary コード サンプルのダウンロード 最近の開発では単体テストが重要視されます。プロジェクトの単体テストを行うメリットとしてよく知られているのは、バグの数が減ること、リリースまでの時間が短くなること、結び付きの強い設計にならないことなどです。どれもすばらしいメリットですが、開発者に直接関わるメリットもあります。単体テストを作成すると、コードに対する自信が深まります。テストが済んだコードへの機能追加やバグ修正が容易になります。これは、コードが変化している間も単体テストがセーフティ ネットの役割を果たすためです。 非同期コードの単体テストの作成には、いくつか特有の

    非同期プログラミング - 非同期コードの単体テスト
    JHashimoto
    JHashimoto 2014/12/06
    "既に完了しているかどうかを確認します。完了していれば、メソッドは (同期処理として) 続行します。待機可能なインスタンスがまだ完了していなければ、await 演算子によってメソッドが "一時停止" します。"
  • Microsoft - AI、クラウド、生産性向上、コンピューティング、ゲーム、アプリ

    すべての Microsoft 製品 Global Microsoft 365 Teams Copilot Windows Surface Xbox セール 法人向け サポート ソフトウェア Windows アプリ AI OneDrive Outlook Skype から Teams への移行 OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ エンタメ Xbox Game Pass Ultimate Xbox とゲーム PC ゲーム 法人向け Microsoft Cloud Microsoft Security Azure Dynamics 365 一般法人向け Microsoft 365 Microsoft Industry Microsoft Power Platform Windows 365 開発者 & IT Microsoft 開発

    Microsoft - AI、クラウド、生産性向上、コンピューティング、ゲーム、アプリ
    JHashimoto
    JHashimoto 2014/10/08
    Chutzpah File References
  • Jasmine使い方メモ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Jasmine使い方メモ - Qiita
  • VOYAGE GROUP エンジニアブログ : QUnit+PhantomJS+JenkinsでJavaScriptの品質を改善!

    2014年09月24日14:15 カテゴリprogrammingtesting QUnit+PhantomJS+JenkinsでJavaScriptの品質を改善! はじめまして!cosmiRelationshipSuiteの開発者であるマルィシェフ・ドミトリーと申します。 世の中で、Webベースシステムが増えており、管理画面の開発を担当している、エンジニアの視野から抜けがちであるJavaScriptのテストについてお話します。最近の数年、TDD概念が非常に流行っており、Model(ビジネスロジック)をテストするJUnitPHPUnitの利用は当たり前のようなことになりました。それと同じく、JS(要するに、Front側のロジック)のテストがをしっかりできる環境として、QUnit+PhantomJS+Jenkinsの組み合わせを紹介したいと思います。 初めに この度、localhostで開発

    VOYAGE GROUP エンジニアブログ : QUnit+PhantomJS+JenkinsでJavaScriptの品質を改善!
  • 複数のインタフェースを持つモックを Moq で作る - kendik.net

    ユニットテストでモックを簡単に作るためのライブラリの有名どころの一つに Moq があります。 基的な使い方の例としてはこんな感じです。 public interface IFoo { bool IsFoo(int value); } public class Foo : IFoo { public bool IsFoo(int value) { // do something } } public class Fuga { public IFoo Foo { get; set; } public string Fuga(int value) { return Foo.IsFoo(value) ? "expected" : ""; } } [TestCase("expected")] public void Test(string expected) { var mock = new Mo

    複数のインタフェースを持つモックを Moq で作る - kendik.net
    JHashimoto
    JHashimoto 2014/09/29
    [“モック可能なのはインタフェースか継承可能なクラス、さらに振る舞いを上書きするにはabstractやvirtualである必要があります。”
  • 効果的なテストの文化を創る

    自動テストの場合、シナリオ、実行、検証はすべてプログラムによってドキュメント化され自動化されます。唯一の手動のセットアップはシナリオ実行のボタンをクリックするだけです。記憶に頼る必要もありませんし、賞味期限の切れたドキュメントを頼って、シナリオを追いかけ、手動で実行する必要はないのです。 ほとんどの開発者が自動テストの価値を認めながら、その利点を享受するのに失敗しています。私は幸いなことに、利点を享受するための正しい方法を見つけることができました。 責任 テストに責任を持つことがなかったら、テストを自動化する時間はなかったでしょう。これはとても単純なことです。自分が開発を支援したシステムのサポートを担うことで、私はソフトウエアがきちんと動作することを保証するということに大きな関心を抱きました。午前5時に電話で起こされて問題を解決するのはごめんです。私は問題がその日のうちに解決するようにこつ

    効果的なテストの文化を創る
    JHashimoto
    JHashimoto 2014/09/11
    "私の頭の中のすべてのシナリオが、大きく変化したのです。作ったものに対する信頼の感覚がよみがえったのです。まだ複雑性が増していない新しいシステムに対する信頼に似たものです。"
  • 【npm + Karma + Jasmine】JavaScriptの単体テスト環境を構築する - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    【npm + Karma + Jasmine】JavaScriptの単体テスト環境を構築する - Qiita
  • WebアプリのUI自動化テストでNightwatch.jsを試す - Qiita

    前置き Titanium Mobile使って、趣味でCraftBeerFanというiPhoneAndroidアプリを作っていて、並行して、Node.jsとACSというBaaSを使ったでWebアプリの方も開発してます。 ひとまず、スマホアプリの方は一旦開発を中断してWebアプリの方の実装に力を入れていこうと考えたのですが、UI部分含めた結合テスト(っていうんですかね?)をあまりしっかりしてないのと、仕事(こっちはRails4)でもUI自動化テストの仕組みを整える必要が出てきたのでどんなものがあるのか調べることにしました。 自分の環境 Mac OS X 10.8.5 Node.js v0.10.26 UI自動化テストのツールに何を選ぶか? Titanium Mobileで開発してることもあって、なるべくNode.js界隈の技術に精通してたほうが色々応用聞くと思って最近はNode.jsなツール

    WebアプリのUI自動化テストでNightwatch.jsを試す - Qiita
  • Unit Testing ASP.NET MVC

    July 2009 Volume 24 Number 07 Testable MVC - Building Testable ASP.NET MVC Applications By Justin Etheredge | July 2009 .SidebarContainerA { width: 400px; height: 180px; float: right; border: 2px solid #008080; padding: 10px 20px 0px 20px; background-color: #e1e8f5; margin: 20px 0px 20px 10px; font-family: Verdana, Arial; font-size: 12px; padding-bottom: 7px; line-height: 16px; color: #333333; } .

    Unit Testing ASP.NET MVC
    JHashimoto
    JHashimoto 2014/06/28
    "・テストが容易なソリューションの構築・依存関係の挿入"
  • [C#・単体テスト] Shim を利用したアセンブリからの分離

    単体テストメソッド作成時に Shim を利用するとメソッドのふるまいを変更したり、.NET アセンブリの呼び出しを変更したりできる。 shim を使用して単体テストでアプリケーションを他のアセンブリから分離する -msdn http://msdn.microsoft.com/ja-jp/library/hh549176.aspx#AddFakes サンプルを作成してみて気を付けなければならない(自分がはまった)のは、参照設定の System.dll を右クリックして 「Fakes アセンブリに追加」 を行うことだ。 Exception を判定したければ、catch をする必要があるのではないかと思う(私はテスト実装に慣れていないので他の方法があるかもしれないが)。 なお、shim はメソッドを書き換えるため、動作速度は遅くなる。 テスト対象クラス namespace Sample { pu

    [C#・単体テスト] Shim を利用したアセンブリからの分離
    JHashimoto
    JHashimoto 2014/06/26
    “単体テストメソッド作成時に Shim を利用するとメソッドのふるまいを変更したり、.NET アセンブリの呼び出しを変更したりできる。”
  • メンテナブルなJsってなんだろう

    悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)

    メンテナブルなJsってなんだろう
  • HttpContextをUnitTestで使う

    UnitTestだとHttpContextが空になるんだけれど、UnitTest中にRequest.Formってどうにか参照できないの?って聞かれました。 サービスクラスの中でHttpContextやHttpRequestを直に参照しないような設計をすればいいんですが、今からだと難しいらしいので、昔の記憶をほじくり返してみる。そういえばHttpSimulatorってのがありましたね。前はC#のソースからビルドしたような気がするけれど、今だとDLLがNugetで公開されているんですね。 HttpSimulator 1.0.0<https://www.nuget.org/packages/HttpSimulator/> テストプロジェクトにNugetでImstall-Package HttpSimulatorをしたら、HttpSimulatorクラスを作って、Formの値やSessionの値を

    HttpContextをUnitTestで使う
    JHashimoto
    JHashimoto 2014/05/26
    “HttpSimulatorクラスを作って、Formの値やSessionの値を設定して、SimulateRequestを呼び出してあげましょう。SimulateRequestした後ならHttpContext.CurrentからFormやRequestにアクセスすれば何事のなく利用できます。”
  • テスト考2014 - Hidden in Plain Sight

    年々、ウェブアプリを開発するときにテストを書こうという機運が強くなっていると感じる。 これは、開発パラダイムの成熟を意味することであり、基的に良いことだと思っている。 しかし同時に「テスト原理主義」とでもいうような極端な考え方もでてきていて、開発スタイルをめぐって摩擦が起こっている。 そして、この議論は「テストは、ないよりあったほうが良いよね」という、微視的には誰も反論できないロジックに押し通されがちで、「地獄への道は善意で舗装されている」の典型的な現象に見えて仕方がない。 テストを書かない、というと背景にどんな深い考えがあっても素人くさく聞こえ、逆にテストを書くというだけで良いプログラマーに見える、という非対称な化粧効果がある。ソフトウェア・コンサルティング会社がテスト好きなのは決して偶然ではない。 ソフトウェアというのは、結局のところ、動いてナンボ、使われてナンボである。 期待するも

    テスト考2014 - Hidden in Plain Sight
    JHashimoto
    JHashimoto 2014/05/01
    "使ったことのない人は2014年のやることリストに「Airbrakeの導入」を追加しておこう。"
  • TDD/BDDの思想とテスティングフレームワークの関係を整理しよう

    TDD/BDDの思想とテスティングフレームワークの関係を整理しよう:いまさら聞けないTDD/BDD超入門(2)(1/3 ページ) TDD/BDDの思想に触れ、フレームワークとしてxUnit、JBehave、xSpec、Cucumber、Turnip、TestDoxを紹介する。 前回の「テスト駆動開発/振る舞い駆動開発を始めるための基礎知識」でも紹介があったように、さまざまなテスティングフレームワークがあります。例えばTDD自体は、Kent Beck(ケント・ベック)氏が著書『テスト駆動開発入門』(ピアソンエデュケーション刊)の中で述べているように、「分析技法および設計技法であり、実際には開発全てのアクティビティを構造化するための技法」です。 TDD(テスト駆動開発)/BDD(振る舞い駆動開発)を実践することと、特定テスティングフレームワークを採用したり開発したりすることを分けて考えておかな

    TDD/BDDの思想とテスティングフレームワークの関係を整理しよう
  • テスト駆動型開発についての議論 - ワザノバ | wazanova

    http://blog.testdouble.com/posts/2014-01-25-the-failures-of-intro-to-tdd.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約7時間前 Test Double社がブログで、TDD (テスト駆動型開発) を教える場合のアプローチを提案しています。 TDDについて、同じ用語やツールを使っていても、「モックオブジェクトがありすぎて、ひどい。」「モックオブジェクトがあふれていて素晴らしい!」という異なる見解に至るケースがでてしまっているのは、理想的なゴールに至る道筋を統一したかたちで教えきれてないからだと指摘しています。 TDDの一番の効果はコードのデザインの改善であり、コードのクオリティの担保は、うまくいけば二次的な効果、まかり間違えば幻想

    JHashimoto
    JHashimoto 2014/03/23
    "TDDの一番の効果はコードのデザインの改善であり、コードのクオリティの担保は、うまくいけば二次的な効果、まかり間違えば幻想になるとし、失敗に陥りやすい具体的なパターンとして挙げているのが、"
  • テラシュールウェア [Unity]テスト自動化のベストプラクティス

    UnityTest Toolの話。 英語だけど凄い資料関連記事[Unity]Unite2014[Unity]自動化されたパフォーマンスの回帰テストについて[Unity]テスト自動化のベストプラクティスサーバーのおしごと[Unity]Unity週末ブートキャンプ「ゲーム 作り方」ゲームサーバ開発現場の考え方 ーーー この記事が気に入ったらシェアしてくれると嬉しいです

    テラシュールウェア [Unity]テスト自動化のベストプラクティス
  • Unity Test Tools がリリースされました | Unity Japan Official Blog

    UnityTestToolsの日語マニュアルは下記URLで閲覧できます。 Unity Test Tools Documentation 以降の内容はUnity Test Tools Releasedを翻訳したものです。 過去にブログでもご紹介しましたが、Unity QA ではこの 2 年間、社内用の各種ツール、フレームワーク、テストリグの開発と拡張を続けてきました。その結果として生まれた各種ツールは、Unity 社内で高く評価されるまでになりました。今回はその成果をユーザーの皆さまと共有するべく、Unity Test Tools バージョン 1 をアセットストアよりリリースいたします。こちらよりダウンロードが可能です: 今回リリースする Unity Test Tools が、ゲーム開発に携わる皆さまの高いコード品質を実現する一助となれば幸いです。 Unit Test (ユニットテスト)

    Unity Test Tools がリリースされました | Unity Japan Official Blog
  • IBM Developer

    IBM Developer
  • Test Data Builderパターン - NEXTSCAPE blog

    Test Data Builderパターンとは Test Data Builderパターンとは、ユニットテストでテストデータを準備する方法のひとつです。TDDにおいてテストデータを用意する方法はいくつか存在しますが、Test Data Builderパターンを使うと、複雑なデータ生成をシンプルにしつつ、テストケース間の依存を防ぐことができます。 このパターンは書籍「Growing Object-Oriented Software, Guided by Tests(通称goos)」の「Constructing Complex Test Data」の章にて書かれています。 Object Motherパターンとの相違 ユニットテストでデータを生成するパターンとしては、ObjectMotherパターンが有名です。ObjectMotherはファウラーのブログで紹介されている通り、テスト用データ(オ

    Test Data Builderパターン - NEXTSCAPE blog
    JHashimoto
    JHashimoto 2013/12/17
    "TDDにおいてテストデータを用意する方法はいくつか存在しますが、Test Data Builderパターンを使うと、複雑なデータ生成をシンプルにしつつ、テストケース間の依存を防ぐことができます。"