カテゴリーアーカイブ: SharePoint オンライン

邪悪なエキサイティングな発表

アナウンスを行うは本当に私のものではありません。, しかし、この時間, ちょうど始められたスラローム ビッグ アップル SharePoint サイト本当に本当に興奮しています。 

スラローム コンサルティングで動作し、ポータルの管理 & コラボレーションの練習。  ビッグ ・ アップル サイトです「私の」ここニューヨークで私の練習のため。  私は長い間これらの 1 つを欲しがっていた. 多くは確信 SP pro の類似した何かを望んだ。  どのように何回も私たち見ている当社の公開サイト, またはお客様のいずれかを知るだけで、それを構築し、彼らが構築それ sp 希望、それらを見て、?  我々 はすべて SP はこの種類の事でかなり良いです知っています。, しかし、非常に一般的ではないです。 

よく, 最後に-私のためにちょうど右揃え世界 SP オンラインは本当に高価です, 私は、右のチームと実際にそれを行うのに十分な時間を持っていた.

それは素晴らしい旅を開始するを取得して、いくつかのことが、サイト上にある上共有.

ここでそれについてのすべての読み取りとの背後にある詳細に興味があるなら, それについて話をするよりもうれしい.

ここでは公式発表リンクです。: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=82 #O365

</終了>

操作方法: 単体テストおよびテスト カバレッジを QUnit.js と Blanket.js オフィスを構成します。 365 SharePoint アプリ

イントロ

単体テストを模索してきたし、オフィスでオンラインの SharePoint の新しい SharePoint アプリの作業を行う JavaScript のテスト カバレッジ 365 スイートです。  明白な研究のパスに私を導いた Qunit.js 右の後, 宛先 Blanket.js.

QUnit では、単体テストを設定し、モジュールにグループ化しましょう。  モジュールはちょうど関連テストを整理する簡単な方法です。. (私は意図したとおりに使っていますかわからない, しかし、私がこれまでに定義されたテスト一連の小規模でこれまで私の仕事は).

Qunit と Blanket.js の統合し、それ私があった- ともっと重要なは-実際に実行されなかった、テストの実行の過程で JavaScript の実際のラインが表示されます。  これは「カバレッジ」-他はないテストによって実行される行がカバー.

良いテスト _ ケースを設定すると、カバレッジの表示, 我々 は我々 のコードの欠陥を隠しているリスクを減らすことができます。  良い回.

Qunit

セットアップ プロジェクトを Visual Studio があると仮定すると, パッケージの java スクリプトの設定をダウンロードして起動します。 http://qunitjs.com.  JavaScript と対応する CSS をソリューションに追加します。  このような鉱山:

image

図 1

ご覧のとおり, 私が使っていた 1.13.0 このブログを書いた時点で投稿します。. ダウンロードし、CSS ファイルを追加することを忘れないでください。.

その方法のうち, 次のステップは、テスト ハーネスのいくつかの種類を作成し、Qunit ビットを参照します。  "QuizUtil_test.html"のようにと呼ばれる HTML ページを作成するので"QuizUtil.js"と呼ばれるスクリプト ファイルで機能の束をテストしています:

image 図 2

ここでは、コードです。:

<!DOCTYPE html>
<html xmlns「http =://www.w3.org/1999/xhtml">
<ヘッド>
    <タイトル>Qunit と QuizUtil テスト</タイトル>
    <リンク rel="スタイル シート" href="../CSS/qunit-1.13.0.css" />
    <スクリプト タイプ"テキスト/java スクリプトの設定を =" src="QuizUtil.js" データ カバー></スクリプト>
    <スクリプトの型 ="テキスト/javascript" src ="qunit 1.13.0.js"></スクリプト>
    <スクリプトの型 ="テキスト/javascript" src ="blanket.min.js"></スクリプト>

    <スクリプト>
        モジュール("getIDFromLookup");
        テスト("QuizUtil getIDFromLookupField", 関数 () {
            var ストックホルム = "1;#ポール Galvin";

            等しい(getIDFromLookupField(ストックホルム) + 1, 2), "の ID [" + ストックホルム + "] + 1 2 をする必要があります。";
            等しい(getIDFromLookupField(未定義), 未定義, 「未定義の入力引数が未定義結果を返す必要があります。");
            等しい(getIDFromLookupField(""), 未定義, "空の入力引数が未定義の値を返す必要があります。");
            等しい(getIDFromLookupField("gobbledigood3-thq;dkvn アダ;skfja sdjfbvubvqrubqer0873407t534piutheqw;(ヴァイオリン)"), 未定義,「返す必要があります常に結果のコンバーチブルを整数");
            等しい(getIDFromLookupField("2;#いくつか他の人"), "2", "チェック [2;#いくつか他の人].");
            等しい(getIDFromLookupField("9834524;#long 型の値"), "9834524", 「大きな値のテスト。");
            等号否定(getIDFromLookupField("5;#誰もが", 6), 6, "テスト、等号否定 (5 等しくないです。 6 このサンプルについて: [5;#誰もが]");

        });

        モジュール("htmlEscape");
        テスト("QuizUtil htmlEscape()", 関数 () {
            等しい(htmlEscape("<"), "&lt;", "エスケープ演算子よりも少ない ('<')");
            等しい(htmlEscape("<div クラス = "someclass">いくつかのテキスト</div>"), "&lt;div クラス =&quot;someclass&quot;&gt;いくつかのテキスト&lt;/div&gt;", 」より複雑なテスト文字列です。");
        });

        モジュール("getDateAsCaml");
        テスト("QuizUtil getDateAsCaml()", 関数 () {
            等しい(getDateAsCaml(新機能 日付(「2013/12/31")), "2013年 12 31T:00:00:00", 「テストのハード コーディングされた日付: [12/31/2013]");
            等しい(getDateAsCaml(新機能 日付("01/05/2014")), 「2014年-01-05T:00:00:00", 「テストのハード コーディングされた日付: [01/05/2014]");
            等しい(getDateAsCaml(新機能 日付("01/31/2014")), 「2014年 01 31T:00:00:00", 「テストのハード コーディングされた日付: [01/31/2014]");
            等しい(getTodayAsCaml(), getDateAsCaml(新機能 日付()), "getTodayAsCaml() getDateAsCaml を等しく必要があります。(新しい日付())");
            等しい(getDateAsCaml("ナンセンス値"), 未定義, "ナンセンス値の日付を取得しようとしてください。");
            等しい(getDateAsCaml(未定義), 未定義, "の日付を取得しようとすると、 [未定義] 日付。");
        });

        モジュール("getParameterByName");
        テスト("QuizUtil getParameterByName (クエリ文字列から)", 関数 () {
            等しい(getParameterByName(未定義), 未定義, "を取得しようとすると、未定義のパラメーターは未定義を返す必要があります。");
            等しい(getParameterByName("は存在しません"), 未定義, "我々 は知っている、パラメーターが存在しないときにパラメーター値を取得しようとしてください。");

        });

        モジュール("クッキー");
        テスト(「QuizUtil 様々 な cookie 機能。", 関数 () {
            等しい(setCookie("テスト", "1", -1), getCookieValue("テスト"), "Get 設定私はクッキーが動作するはずです。");
            等しい(setCookie("anycookie", "1", -1), true, "有効な調理返す必要があります 'true'。");
            等しい(setCookie("クレイジー クッキー名 !@#$%"%\^&*(()?/><.,", "1", -1), true, ' 悪い cookie 名を設定する必要があります false を返す ''。");
            等しい(setCookie(未定義, "1", -1), 未定義, 渡すことは、クッキー名として定義されていません。");
            等しい(getCookieValue("は存在しません"), "", "クッキーはテストは存在しません。");
        });

    </スクリプト>
</ヘッド>
<>
    <div id"qunit ="></div>
    <div id「qunit フィクスチャを ="></div>

</>
</html>

ここで起こっているいくつかのものがあります。:

  1. 私のコードを参照します。 (QuizUtil.js)
  2. Qunity.js を参照します。
  3. いくつかのモジュールを定義します。 (getIDFromLookup, クッキー, その他)
  4. 配置する、 <div> ID が"qunit".

[, 私はちょうどこのページを引き出すし、このような何かを得る:

image

図 3

場合は、上部に見て, いくつかのオプションがあります。, 2 つは面白い:

  • 非表示のテストに合格しました。: かなり明らか。  ちょうど問題の領域と多くの散乱を見るあなたの目を助けることができます。.
  • モジュール: (ドロップ ・ ダウン): これはちょうどそれらのテストのグループまでテストをフィルター処理します。.

彼ら自身で – いくつかのコメント テストに関して:

  • それが最初の場所でテスト可能なコードを記述する必要があること言うまでもなく行きます。  その規律の強化を助けることができるツールを使用. 例えば, "GetTodayAsCaml と呼ばれる機能を持っていた()”.  入力引数をとらないので、これは非常にテストし、等しいかどうかをテストするには, 我々 は常に現在の日付を反映するようにテスト コードを更新する必要があります。  データの入力パラメーターを追加し、CAML 形式で今日の日付の場合、現在の日付を渡すことによってそれをリファクタリング.
  • Qunit フレームワーク ドキュメント独自にテストし、かなり堅牢なようです。  等価性テストのような単純なものを行うことができ、ajax スタイルの呼び出しをサポートしています (使用してあなたのお気に入りの曲以上の「本物の」またはモック).
  • 「未定義」で何が起こる-エッジ ケースを通して考える強制的プロセスを経てもまたは関数に null が渡されます。  それはうちこれらのシナリオをテストする死者は簡単です。  良いもの.

Blanket.js とカバレッジ

Blanket.js はあなたのテストの実行中に実行されるコードの実際のラインを追跡することによって Qunit を補完します。  それはこれにもかかわらずそれは全体の別々 のアプリ Qunit に権利を統合します。, それは素敵なを果たしている-実際に 1 つのシームレスなアプリケーションのように見えます.

これはアクションで blanket.js:

image 図 4

image

図 5

(実際に上部の「カバレッジを有効にする」チェック ボックスをオンをクリックする必要があります。 [図を参照してください。 3] これをできるようにします。)

図で強調表示された行 5 私のテストのいずれかが実行されていません。, それらを引き起こす完全なカバレッジをする場合に実行するテストを考案する必要がありますので.

次の手順で作業 blanket.js を取得します。:

  1. それをダウンロードします。 http://blanketjs.org/.
  2. プロジェクトに追加します。
  3. テスト ハーネス ページを更新します。 (私の場合 QuizUtil_test.html) 次のように:
    1. 参照コード
    2. 飾るあなた <スクリプト> このような参照します。:
    <スクリプト タイプ"テキスト/java スクリプトの設定を =" src="QuizUtil.js" データ カバー></スクリプト>

Blanket.js は、データ-カバー」属性をピックアップし、その魔法が。  それは Qunit にフックします。, 「カバレッジを有効にする」オプションを追加する UI を更新し、出来上がり!

概要 (TL; 博士)

Qunit を使用して、テスト _ ケースを作成.

  • それをダウンロードします。
  • プロジェクトに追加します。
  • テスト ハーネス ページを書く
  • テストを作成します。
    • いくつかは、テスト コードをリファクタリングします。
    • 創造的であります。!  クレイジーだと思う, 不可能なシナリオとそれらをとにかくテスト.

カバレッジを確保するのに blanket.js を使用します。

  • Qunit が動作を確認してください。
  • Blanket.js をダウンロードし、プロジェクトに追加
  • テスト ハーネス ページを追加します。:
    • Blanket.js への参照を追加します。
    • 「データ カバー」属性を追加して <スクリプト> タグ
  • Qunit テストを実行します。.

私は決してこれを前にいずれかを行なったし、時間のほんの一握りで働いていくつかの初歩的なものを持っていた。 

ハッピー テスト!

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

BPOS 2010 「スーパー セット”

いずれかを読んでいた これらは汎用のくだらなさのような記事の BPOS にかなり (Microsoft の exchange と SharePoint の雲) ありがたいことに、最後を waded:

他の短期的な成果の面で, Microsoft の BPOS v.Next ネイティブ PowerShell PowerShell エンドポイント ビルド PowerShell バージョン経由でスクリプトを提供するためにコミットです。 2. 認証は、オンライン Id を介して行われる, 1 つのクレデンシャルを PowerShell とポータルの両方を使用することができた。キーン幹部に今週表明されているその他のマイクロソフトのメッセージのエコー: 雲の機能, 時間をかけて, でしょう  利用可能な社内のスーパー セットになります。. 現在, その逆は, ソフトウェアと同等の各製品で使用できる機能のサブセットの Microsoft のオンライン サービスの提供.

雲がオンプレミスよりより多くの機能を提供することの概念は私に新しいです。. 最後にするつもりは本当だろうか。  それは私に反する感じています。  私は完全に企業の多くのものをクラウドに移動すると、アイデアを得る (または、雲に始める) しかし、私は通常それが思うプロの (簡単に admin, Sla, など) はるかに上回る短所 (機能制限). 

少し雲の供物は prem に関する機能を超えることを信じるつらい時を持つです。  商家は難しいし、妥協良い SLA と使いやすさを提供するために強制的にする必要がありますように思える.

おそらく私の言葉を食べるになります。  誰もがおそらく必要がある思考を覚えて以上 650 mb のデータとその, CD は決して改良するつもりだった.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

オンラインの SharePoint と InfoPath

私はこれを実現するために、最後の人があります。, SharePoint オンラインが (私はしばしば人々 言うことを聞く、栄光の WSS は) InfoPath Forms Services をサポートしています。  非常に強力なものです。, 特に IP FS は、MOSS のエンタープライズ機能の BPOS 1.99 ドル月額のようだとを考慮しました。 10,000 ユーザー。  多分それは少し以上です。.

だから, SharePoint Online は、簡単な定義を挑発します。  このエンタープライズ機能をが, 匿名アクセスですが (どちらも WSS をサポートします。).  いくつかの面白い検索を行うことができます。 (MOSS-ish, サイト レベルの範囲を定義することができますので), しかし、SSP へのアクセスが必要な場合, あなたはそれを行うことはできません。  この製品を使用すると、「一方では他方」のゲームを一晩中プレイできます 🙂

Microsoft は、次の数ヶ月で SP オンラインの新しいバージョンをリリースする予定です。  それが起こっているどのような奇妙なハイブリッドをかな?

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin