2016.5.11
4078 ワード
1.『ブラウザ側テスト:mocha,chai,phantomjs』
mocha initテストフレーム足場.
mocha init(エラーが表示され、mocha init fileがfileにある場合のみ正しい)
あるいはmocha init.(忘れないでね)
ここでindex.htmlはユニットテストの入り口ですjsは私たちのテスト例ファイルです.
私たちは直接indexにいます.htmlは、上記の例のテストが必要な関数と、断言ライブラリchaijsを挿入します.そしてtests.jsに対応するテスト例を書き込む.
ここでindexが開きます.html、テスト結果を発見することができて、私達はブラウザの端のスクリプトのテストを完成しました(windowオブジェクトを呼び出したことに注意します)
1)テストスクリプト
「テストスクリプト」とは、ソースコードをテストするためのスクリプトです.
加算モジュール
この加算モジュールが正しいかどうかをテストするには、テストスクリプトを書きます.
通常、テストスクリプトは、テストするソーススクリプトと同じ名前ですが、接尾辞名は
上のコードは、独立して実行できるテストスクリプトです.テストスクリプトには、1つ以上の
昨日はshouldを習いましたが、今日見たのはexpectです.chaiというライブラリから入手できます.以下にexpectのいくつかの例を示します.自然言語に非常に近いものです
3)mochaの使い方
テストスクリプトがあれば、テストスクリプトを実行します.
Mochaデフォルト運転
2.正規表現
長い記憶過程.前に見たのに今また忘れてしまった.
ライブラリ.テストfunction速度を許さないbench..
4.npm install--saveとnpm install--save-devの違い
一つはpackageに置いてあります.jsonのdependencies、一つはdevDependenciesの中に置いてあります.
5.閉包及び閉包のピット
上記のコードブロックは5つの
なぜならsettimeoutのiは対外層iの参照であるからである.settimeoutのコードが解釈されると、実行時にiの参照が記録されるだけで、値ではありません.一方、settimeoutがトリガされると、5つのsettimeoutのiは同時に値を取られ、それらはいずれも外層の同じiを指し、そのiの値は反復完了時に5であるため、
我々の予想した結果を得るために,iを局所変数に付与し,外層反復の影響から抜け出すことができる.
印刷結果:0 1 2 3 4
idx変数は関数ブロック内にのみ作用ドメインがあるからです.iが1に変化すると、新しいfunctionが呼び出される.このとき、従来のfunctionとは異なる(iが0のfunctionはスタックに押されて呼び出されていない)ため、このときのidxは新しい(以前のidxはこのfunctionに作用しない)必要がある
よく分かりました.
6.mysqlトレーニング
1)ユーザーと権限
2)mysqlでよく使われる関数
count/sum/max/min/avg/abs/round/cast/convert/ifnull/date_format/now/substr/concat
3)left join right join inner jion
3)groupby selectと一緒にいるときはselectの個数とgroup byの個数が一致していることに注意してください.そうしないとエラーになりやすいです
4)mysqlの等しくない番号<>
5)select文どのような文や関数が含まれていても元のデータベースの数値は変わりません
6)nullのフィールドまたは文字タイプであり、whereクエリで直接比較に使用することはできません.
7)mysqlイベント(イベントスケジューラ)
mocha initテストフレーム足場.
mocha init(エラーが表示され、mocha init fileがfileにある場合のみ正しい)
あるいはmocha init.(忘れないでね)
.
├── index.html #
├── mocha.css
├── mocha.js
└── tests.js #
ここでindex.htmlはユニットテストの入り口ですjsは私たちのテスト例ファイルです.
私たちは直接indexにいます.htmlは、上記の例のテストが必要な関数と、断言ライブラリchaijsを挿入します.そしてtests.jsに対応するテスト例を書き込む.
ここでindexが開きます.html、テスト結果を発見することができて、私達はブラウザの端のスクリプトのテストを完成しました(windowオブジェクトを呼び出したことに注意します)
1)テストスクリプト
「テストスクリプト」とは、ソースコードをテストするためのスクリプトです.
加算モジュール
add.js
のコードを次に示します.// add.js
function add(x, y) {
return x + y;
}
module.exports = add;
この加算モジュールが正しいかどうかをテストするには、テストスクリプトを書きます.
通常、テストスクリプトは、テストするソーススクリプトと同じ名前ですが、接尾辞名は
.test.js
(テストを表す)または.spec.js
(仕様を表す)です.たとえば、add.js
のテストスクリプトの名前はadd.test.js
です.// add.test.js
var add = require('./add.js');
var should = require('chai').should;
describe(' ', function() {
it('1 1 2', function() {
add(1, 1).should.equal(2);
});
});
上のコードは、独立して実行できるテストスクリプトです.テストスクリプトには、1つ以上の
describe
ブロックが含まれ、各describe
ブロックには1つ以上のit
ブロックが含まれなければならない.describe
ブロックを「テストキット」(test suite)と呼び、関連するテストのセットを表す.これは関数で、最初のパラメータはテストスイートの名前(「加算関数のテスト」)で、2番目のパラメータは実際に実行される関数です.it
ブロックを「テスト例」(test case)と呼び、単独のテストを表し、テストの最小単位である.これも関数です.最初のパラメータはテスト例の名前(「1に1を足すと2になるはずです」)で、2番目のパラメータは実際に実行される関数です.2)断言ライブラリ昨日はshouldを習いましたが、今日見たのはexpectです.chaiというライブラリから入手できます.以下にexpectのいくつかの例を示します.自然言語に非常に近いものです
//
expect(4 + 5).to.be.equal(9);
expect(4 + 5).to.be.not.equal(10);
expect(foo).to.be.deep.equal({ bar: 'baz' });
// true
expect('everthing').to.be.ok;
expect(false).to.not.be.ok;
// typeof
expect('test').to.be.a('string');
expect({ foo: 'bar' }).to.be.an('object');
expect(foo).to.be.an.instanceof(Foo);
// include
expect([1,2,3]).to.include(2);
expect('foobar').to.contain('foo');
expect({ foo: 'bar', hello: 'universe' }).to.include.keys('foo');
// empty
expect([]).to.be.empty;
expect('').to.be.empty;
expect({}).to.be.empty;
// match
expect('foobar').to.match(/^foo/);
3)mochaの使い方
テストスクリプトがあれば、テストスクリプトを実行します.
$ mocha add.test.js
Mochaデフォルト運転
test
サブディレクトリのテストスクリプト.だから、普通はテストスクリプトをtest
ディレクトリの中にあり、実行されます.mocha
パラメータは必要ありません2.正規表現
長い記憶過程.前に見たのに今また忘れてしまった.
ライブラリ.テストfunction速度を許さないbench..
4.npm install--saveとnpm install--save-devの違い
一つはpackageに置いてあります.jsonのdependencies、一つはdevDependenciesの中に置いてあります.
5.閉包及び閉包のピット
for (var i = 0; i < 5; i++) {
setTimeout(function () {
console.log(i);
}, 5);
}
上記のコードブロックは5つの
5
を印刷しますが、予想される結果は0 1 2 3 4を印刷します.なぜならsettimeoutのiは対外層iの参照であるからである.settimeoutのコードが解釈されると、実行時にiの参照が記録されるだけで、値ではありません.一方、settimeoutがトリガされると、5つのsettimeoutのiは同時に値を取られ、それらはいずれも外層の同じiを指し、そのiの値は反復完了時に5であるため、
5
を5回印刷した.我々の予想した結果を得るために,iを局所変数に付与し,外層反復の影響から抜け出すことができる.
for (var i = 0; i < 5; i++) {
(function (idx) {
setTimeout(function () {
console.log(idx);
}, 5);
})(i);
}
印刷結果:0 1 2 3 4
idx変数は関数ブロック内にのみ作用ドメインがあるからです.iが1に変化すると、新しいfunctionが呼び出される.このとき、従来のfunctionとは異なる(iが0のfunctionはスタックに押されて呼び出されていない)ため、このときのidxは新しい(以前のidxはこのfunctionに作用しない)必要がある
よく分かりました.
6.mysqlトレーニング
1)ユーザーと権限
2)mysqlでよく使われる関数
count/sum/max/min/avg/abs/round/cast/convert/ifnull/date_format/now/substr/concat
3)left join right join inner jion
3)groupby selectと一緒にいるときはselectの個数とgroup byの個数が一致していることに注意してください.そうしないとエラーになりやすいです
4)mysqlの等しくない番号<>
5)select文どのような文や関数が含まれていても元のデータベースの数値は変わりません
6)nullのフィールドまたは文字タイプであり、whereクエリで直接比較に使用することはできません.
7)mysqlイベント(イベントスケジューラ)