NUnit概要まとめ
仕事でNUnitを使いそうなので調べてみた。
概要をまとめる。
(GetStart)
NUnitをダウンロードしてインストール
テストプロジェクトはDLLとして作成する
nunit.framework.dllの参照を追加する
テスト先のプロジェクトからテストプロジェクトを参照する
Imports NUnit.Framework
(基本)
クラス名にをつける
テスト対象メソッドにはをつける
Assert.AreEqual(a, b)
dllを作成し、NUnitで読み込む
・AreEqualメソッドは、期待値、実際の値の順で指定する
(テストの引数指定、複数指定)
テストに引数を与える場合はのように指定する
TestCaseは一つのメソッドに複数指定することができる。
StringAssert
FileAssert
CollectionAssert
(共通の準備と後始末)
TextFixtureSetUp:テストクラスの実行前に一度だけ実行される
SetUp:テストクラスのメソッドが実行される前に毎回実行される
TearDown:テストクラスのメソッドが実行された後に毎回実行される
TestFixtureTearDown:テストクラスの実行後に一度だけ実行される
(データ駆動テスト)
TestCaseSourceで指定した値を順に代入する
static int[] 偶数 = new int[] { 2, 4, 6, 8 };
[Test, TestCaseSource("偶数")]
public void Test01a_ハードコーディングしたデータ_偶数(int num) {
Assert.IsTrue(整数.Is偶数(num));
}
(総当り)
[Test]
[Combinatorial]
public void Test01_組み合わせテスト([Values(1, 2, 3)]int n, [Values("A", "B")] string s) {
Console.WriteLine("引数に({0}, {1})を渡してテスト対象を呼び出します", n, s);
Assert.Pass();
}
概要をまとめる。
(GetStart)
NUnitをダウンロードしてインストール
テストプロジェクトはDLLとして作成する
nunit.framework.dllの参照を追加する
テスト先のプロジェクトからテストプロジェクトを参照する
Imports NUnit.Framework
(基本)
クラス名に
テスト対象メソッドには
Assert.AreEqual(a, b)
dllを作成し、NUnitで読み込む
・AreEqualメソッドは、期待値、実際の値の順で指定する
(テストの引数指定、複数指定)
テストに引数を与える場合は
TestCaseは一つのメソッドに複数指定することができる。
StringAssert
FileAssert
CollectionAssert
(共通の準備と後始末)
TextFixtureSetUp:テストクラスの実行前に一度だけ実行される
SetUp:テストクラスのメソッドが実行される前に毎回実行される
TearDown:テストクラスのメソッドが実行された後に毎回実行される
TestFixtureTearDown:テストクラスの実行後に一度だけ実行される
(データ駆動テスト)
TestCaseSourceで指定した値を順に代入する
static int[] 偶数 = new int[] { 2, 4, 6, 8 };
[Test, TestCaseSource("偶数")]
public void Test01a_ハードコーディングしたデータ_偶数(int num) {
Assert.IsTrue(整数.Is偶数(num));
}
(総当り)
[Test]
[Combinatorial]
public void Test01_組み合わせテスト([Values(1, 2, 3)]int n, [Values("A", "B")] string s) {
Console.WriteLine("引数に({0}, {1})を渡してテスト対象を呼び出します", n, s);
Assert.Pass();
}
CSS3のまとめ
CSS3:
・角を丸くする
border-radius:10px
・丸を描く
border-radius: 50%
この状態でbackground-image:指定を行うとイメージが丸に切り抜かれる
・透明度の指定
background-color: rgba(0,0,0,0.7)
opacity: 0.7
・要素に影をつける
box-shadow: 10px 10px;
box-shadow: 10px 10px 5px rgba(0,0,0,0.7);
param1: width
param2: height
param3: ぼかし
param4: 色
param5: inset; 内側に影
text-shadowもある。
・線形グラデーション
background: -webkit-linear-gradient(red,blue);
※オプション次第で起点を変更したり、割合、角度を変更したりできる。
radial-gradientで円形グラデーションもできる
・要素の拡大
-webkit-transform-origin:top left;
-webkit-transform: scale(1.2, 1.5);
transform-originで拡大の起点を指定する。
transform: scale()で拡大率を指定する。
Z方向への拡大も指定する場合は、scale3d()を使用する。
・要素の平行移動
-webkit-transform: translate(20px, 10px);
X,Y方向の順に指定する。
・要素の回転
-webkit-transform: rotate(45deg);
・要素の傾き
-webkit-transform: skew(20deg, 20deg);
・要素のアニメーション
-webkit-transition-property: all;
-webkit-transition-duration: 1s;
/* linear ease-in, ease-out ease-in-out */
-webkit-transition-timing-function:ease-in-out;
/* 結果 */
div:hover
{
height: 200px;
background-color: red;
}
propertyはアニメーションの対象。
durationはアニメーションの期間。
timing-functionはlinearで線形な変化、
ease-inで開始をゆっくり、
ease-outで終了をゆっくり。
・要素のアニメーション(キーフレーム)
div:hover
{
-webkit-animation-name: animeTest;
-webkit-animation-duration: 5s;
-webkit-animation-timing-function: ease;
-webkit-animation-delay:1s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-direction normal;
}
@-webkit-keyframes animeTest
{
0% { width: 100px; background-color: orange; }
50% { width: 150px; background-color: red; }
100% { width: 300px; background-color: pink; }
}
上記のようにすることで、hover時にキーフレーム指定したアニメーションが可能。
animation-nameで名称を定義。
delayは開始までの時間。
iteration-countは繰り返し回数。
directionにalternateを指定すると、100%に到達した後、今度は逆向きに再生される。
(ただし、なぜかhoverで定義すると適用されなかった)
・セレクタ
全体一致:=
前方一致:^=
後方一致:$=
中間一致:*=
・セレクタ:インデックスベースでの検索
div *:nth-child(n): 特定の数値
odd: 奇数
even: 偶数
3n: 3の倍数
3n+1:
first-child:インデックスの先頭
last-child:インデックスの末尾
・タイプごとの検索
div p:nth-of-type(n)
{
}
p要素のn番目を対象にする
first-of-type
last-of-typeもある
・属性を指定してのセレクタ
input[type="text"]:disabled
{
}
でdisableなtextに対してスタイルを適用する
・角を丸くする
border-radius:10px
・丸を描く
border-radius: 50%
この状態でbackground-image:指定を行うとイメージが丸に切り抜かれる
・透明度の指定
background-color: rgba(0,0,0,0.7)
opacity: 0.7
・要素に影をつける
box-shadow: 10px 10px;
box-shadow: 10px 10px 5px rgba(0,0,0,0.7);
param1: width
param2: height
param3: ぼかし
param4: 色
param5: inset; 内側に影
text-shadowもある。
・線形グラデーション
background: -webkit-linear-gradient(red,blue);
※オプション次第で起点を変更したり、割合、角度を変更したりできる。
radial-gradientで円形グラデーションもできる
・要素の拡大
-webkit-transform-origin:top left;
-webkit-transform: scale(1.2, 1.5);
transform-originで拡大の起点を指定する。
transform: scale()で拡大率を指定する。
Z方向への拡大も指定する場合は、scale3d()を使用する。
・要素の平行移動
-webkit-transform: translate(20px, 10px);
X,Y方向の順に指定する。
・要素の回転
-webkit-transform: rotate(45deg);
・要素の傾き
-webkit-transform: skew(20deg, 20deg);
・要素のアニメーション
-webkit-transition-property: all;
-webkit-transition-duration: 1s;
/* linear ease-in, ease-out ease-in-out */
-webkit-transition-timing-function:ease-in-out;
/* 結果 */
div:hover
{
height: 200px;
background-color: red;
}
propertyはアニメーションの対象。
durationはアニメーションの期間。
timing-functionはlinearで線形な変化、
ease-inで開始をゆっくり、
ease-outで終了をゆっくり。
・要素のアニメーション(キーフレーム)
div:hover
{
-webkit-animation-name: animeTest;
-webkit-animation-duration: 5s;
-webkit-animation-timing-function: ease;
-webkit-animation-delay:1s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-direction normal;
}
@-webkit-keyframes animeTest
{
0% { width: 100px; background-color: orange; }
50% { width: 150px; background-color: red; }
100% { width: 300px; background-color: pink; }
}
上記のようにすることで、hover時にキーフレーム指定したアニメーションが可能。
animation-nameで名称を定義。
delayは開始までの時間。
iteration-countは繰り返し回数。
directionにalternateを指定すると、100%に到達した後、今度は逆向きに再生される。
(ただし、なぜかhoverで定義すると適用されなかった)
・セレクタ
全体一致:=
前方一致:^=
後方一致:$=
中間一致:*=
・セレクタ:インデックスベースでの検索
div *:nth-child(n): 特定の数値
odd: 奇数
even: 偶数
3n: 3の倍数
3n+1:
first-child:インデックスの先頭
last-child:インデックスの末尾
・タイプごとの検索
div p:nth-of-type(n)
{
}
p要素のn番目を対象にする
first-of-type
last-of-typeもある
・属性を指定してのセレクタ
input[type="text"]:disabled
{
}
でdisableなtextに対してスタイルを適用する
要素の位置指定
position:
・absolute
・relative
・fixed
absolute:絶対位置
relative:相対位置
fixed: bottom
などのように指定する。ブラウザの下端に固定される。
z-position:1
z-position:2
奥行き上の関係を規定する。
・absolute
・relative
・fixed
absolute:絶対位置
relative:相対位置
fixed: bottom
などのように指定する。ブラウザの下端に固定される。
z-position:1
z-position:2
奥行き上の関係を規定する。
