Marionette-host-environment 是一个用于测试 Backbone.Marionette 应用程序的 npm 包。它可以提供一个轻量级的测试环境,可以在浏览器和 Node.js 中运行。
本文将介绍如何使用 marionette-host-environment 包进行测试,并提供详细的指导、示例代码和深度解释。
安装
你可以通过 npm 来安装 marionette-host-environment:
npm install marionette-host-environment --save-dev
安装完成后,你可以将 marionette-host-environment 导入你的测试文件中:
// 在你的测试文件中 const { createApp } = require('marionette-host-environment');
createApp
createApp 是 marionette-host-environment 导出的一个静态方法,它可以帮助你创建一个 marionette-host-environment 应用程序实例。它的函数签名如下:
function createApp(options: Options) => App
options:包含如下属性:
src
: 应用程序代码的路径css
:应用程序 CSS 的路径fixtures
:包含测试固件的目录的路径beforeStart
:一个函数,它在应用程序实例启动之前调用afterStart
:一个函数,它在应用程序实例启动后调用serverOptions
:用于应用程序的本地服务器的选项
App:返回一个应用程序实例。
除了选项之外,createApp 还需要你的 Marionette 应用程序在入口点处导出一个类:
// src/app.js import { Application } from 'backbone.marionette'; class MyApp extends Application { // ... } export default MyApp;
你可以如下这样创建你的应用程序:
-- -------------------- ---- ------- -- -------- ----- ---------- - - ---- -------------------- -------------- ---- -------------------- --------------- -------------- - ------ ------ ----- ----- -- -- ----- --- - ----------------------
这里的 appOptions 指的是应用程序的选项,它们包括将要测试的入口点JavaScript、CSS等多个部分的源代码路径,以及其他一些选项,如启动本地服务器。
应用程序实例
createApp 方法返回一个应用程序实例,它包含了许多方法,用于操作这个应用程序实例。以下是一些示例:
start
start 方法被用来启动应用程序。一旦应用程序启动,Marionette.Host 中的宿主服务就开始监听。
app.start();
stop
stop 方法可以用来销毁应用程序和它的视图和实例对象。它还会关闭 Marionette.Host。
app.stop();
container
container 属性是应用程序的 jQeur 动态缓存,用于容纳应用程序中的所有视图。
console.log(app.container); // 列出所有JQuery对象。
element
element 属性是应用程序 DOM 根元素的原始 jQuery 对象。
console.log(app.element); // 列出应用程序的 DOM 根元素。
consoleMessages
consoleMessages 方法可以从应用程序的宿主服务捕获作为日志的所有 console 消息。
console.log(app.consoleMessages); // 列出应用程序的所有 console 消息。
您的第一个测试用例
现在你可以正式开始构建你的应用程序测试用例。以下是一个相对简单的示例:
-- -------------------- ---- ------- -- -- ------------ ----- - --------- - - --------------------------------------- ----- ---- - ---------------- ------------ ------ -- -- - --- ---- ------------- -- - --- - ----------- ---- -------------------- -------------- -------------- - ------ ------ ----- ----- -- --- ------------ --- ------------ -- - ----------- --- ---------- ------- - ---- ------- ----- -- -- - -- --- --- ----- ------- ---- --- ---- ----- ----- - ----- ------------------ -- - ------ ------------------ --- ----------------------------- --- ---
在这个测试用例中,我们创建了一个标准的 Jest 测试套件,来测试 MySite 项目中的页面标题。使用 beforeEach 和 afterEach 方法保证 app 在每个测试用例之前启动,在测试完成之后关闭。
结论
现在你应该对 marionette-host-environment 有了完整的了解,并可以开始创建你的 Marionette 应用程序测试用例了。我们在这篇文章中提供了一个非常简单和基础的测试用例示例,实际上 marionette-host-environment 可以提供非常完善和高级的测试环境,帮助测试你的整个 Marionette 应用程序。
希望这篇文章可以帮助到你!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f21370e403f2923b035c68e