0

この質問のフォローアップとして、スタンドアロンの XUL アプリケーション (Firefox の拡張機能ではない) をテストするために MozMill を試しています。しかし、私はまだ理解していませんでした。具体的には、XULRunner ベースのアプリケーションをテストする方法についてです。

たとえば、このアプリを考えてみましょう。今のところ、コマンド ラインから実行できますが、多かれ少なかれ次のようになります。

$ /path/to/xulrunner /full/path/to/mozmillexample/application.ini

それをテストする Mozmill スクリプトを書きたいと思います。たとえば、単体テストの「味」として次のようなテストを書きたいと思います。

 Components.utils.import("chrome://mozmillexample/content/example.js", example);
 var setupModule = function(module) {
     module.controller = mozmill.getBrowserController(); // Or what?
 }

var testEquals = function() {
    jumlib.assertEqual(example.exHello(), "Hello, World!", "Should be equal");
}

いくつかの機能テストも書きたいと思います。

 Components.utils.import("chrome://mozmillexample/content/example.js", example);
 var setupModule = function(module) {
     module.controller = mozmill.getBrowserController(); // Or what?
 }

var testAlerts = function() {
    var button = findElement.Elem(document.getElementById('button'));
    button.click();
    controller.window.assertAlert(); // I bet it does not exist but it gives the idea...
}

残念ながら、スタンドアロン アプリのテストに関するドキュメントは見つかりませんでした。少なくとも、基本的な手順を説明しているものはありません。だから私は尋ねます: これらのようなテストを書くことは可能ですか? 可能であれば、どうすればよいですか?

4

1 に答える 1

3

MozMill 拡張機能で動作するようになりました。拡張機能を解凍し、次のファイルを編集します。

  • これを install.rdf の適切な場所に追加します。

    <em:targetApplication>
      <Description>
        <em:id>mozmill@example.com</em:id>
        <em:minVersion>0.9</em:minVersion>
        <em:maxVersion>1.1</em:maxVersion>
      </Description>
    </em:targetApplication>`
    
  • アプリケーションのルート (application.ini と "chrome" と "defaults" フォルダーがある場所) に "extensions" フォルダーを作成します。解凍した mozmill 拡張機能をそこに貼り付けます。

  • MDCの説明に従って、拡張機能マネージャーを有効にします。

  • XULRunner アプリに MozMill 拡張コードを埋め込みます。<script src="chrome://mozmill/content/overlay.js"/>

  • 拡張機能を追加または変更して有効にする%appdata%\Adam Brandizzi\MozMill Example\Profiles\123455.default\extensions.ini: [ExtensionDirs] Extension0=C:\Users\John\Desktop\myXULApp\extensions\mozmill

    • 次の JS コードを使用して MozMill を開きます。MozMill.onMenuItemCommand(event);
于 2011-09-05T13:50:21.420 に答える