Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9509

人工知能はひまつぶしにひつまぶしを食べるか(検証編・準備)

$
0
0
コーディングが完了したので、簡単に動作確認(機能を検証)してみた。とりあえず、仕様は満たしているようである。 いきなり、結合テストをしてしまったが、単体テストをいくつか作成する。単体テストのフレームワークは、NUnitを使う。 単体テスト対象クラス BalanceBaseクラス Prodauctクラス Colaクラス インターフェースの作成 NSubstituteを使うので、上記クラスを継承するインターフェースが必要になる。Public修飾子のメソッドやプロパティしかテストできない。 IProductインターフェース テストの対象となるプロパティが3個とメソッドが2個。 IProduct.cs using System; using System.Collections.Generic; using System.Text; namespace VendingMachine { public interface IProduct { #region プロパティ /// <summary> /// 商品名 /// </summary> string ProductName { get; set; } /// <summary> /// 在庫 /// </summary> int Stock { get; set; } /// <summary> /// 商品価格 /// </summary> int Price { get; set; } #endregion /// <summary> /// /// </summary> /// <returns></returns> bool HasStock(); /// <summary> /// /// </summary> void SubtractStock(); } } IBalanceインターフェース テストの対象となるメソッドが3個。 IBalance.cs using System; using System.Collections.Generic; using System.Text; namespace VendingMachine { public interface IBalance { /// <summary> /// /// </summary> /// <param name="amount"></param> /// <returns></returns> bool Credit(int amount); /// <summary> /// /// </summary> /// <param name="amount"></param> /// <returns></returns> bool Debit(int amount); /// <summary> /// /// </summary> /// <param name="amount"></param> /// <returns></returns> int GetBalance(); } } インターフェースの継承 Productクラスは、IProductを継承するようソースコードを修正する。 Product.cs public abstract class Product : IProduct 同様に、BindableBaseクラスは、IBalanceを継承するようソースコードを修正する。 BindableBase.cs public class BalanceBase : IBalance 以上でテストケースを作成する準備は、整った。

Viewing all articles
Browse latest Browse all 9509

Trending Articles