jla*_*ang 5 javascript testing mqtt typescript paho
我用谷歌搜索了几天,但找不到任何关于如何测试Paho MQTT客户端的信息.我以某种天真的方式尝试过它,就像那样:
import { suite, test, slow, timeout, skip, only } from 'mocha-typescript';
import chai = require('chai');
var jsdom = require('jsdom');
var Paho: any;
const expect: any = chai.expect;
const host: string = '127.0.0.1';
const port: number = 1384;
const clientId1: string = 'testid1';
const clientId2: string = 'testid2';
let client1;
let client2;
describe('test', function () {
it('should', function (done) {
// emulate browser window, which is required by Paho
jsdom.env("<html><body></body></html>", [],
function (err: any, window: any) {
// when window is ready, require Paho and
// initialize with built window
Paho = require('ng2-mqtt/mqttws31').jsdom(window);
// This does not work -> exception in mqttws31.js: window is not defined
client1 = new Paho.MQTT.Client(host, port, clientId1);
client1.connect({ onSuccess: () => { expect(true).to.be.true; done(); }, onFailure: () => { expect(false).to.be.true; } })
done();
});
});
});
Run Code Online (Sandbox Code Playgroud)
但是,Paho = require(...)
回调函数中的-Part jsdom.env(...)
抛出了mqttws31.js中的异常:"窗口未定义".有谁知道如何解决这个问题,以便让Paho Client在非浏览器环境中运行?
提前致谢!
https://www.npmjs.com/package/mochify您可以使用类似的 NPM 模块,如下所示。就像您可能期望的那样,Node.js 环境本身没有浏览器全局变量,因此请使用一些可以将这些全局变量集成到您的测试环境中的库。
我对摩卡不太熟悉,但这是我在 Karma 中使用过的另一个库作为参考https://www.npmjs.com/package/karma-browserify
或者只是使用一些外部服务,例如 BrowserStack https://www.npmjs.com/package/browserstack
归档时间: |
|
查看次数: |
459 次 |
最近记录: |