小编Ian*_*hel的帖子

测试 IIFE(立即调用函数表达式)的最佳方法

所以我有一个现有的应用程序,它在浏览器中广泛使用 IIFE。我正在尝试在代码中引入一些单元测试,并保持 IIFE 模式以对代码库进行新的更新。除此之外,我什至无法编写一个测试来处理代码。例如,我在代码库中看到了这种类型的逻辑:

var Router = (function (router) {

   router.routeUser = function(user) {
      console.log("I'm in! --> " + user)
   };

   return router;
})(Router || {});
Run Code Online (Sandbox Code Playgroud)

然后将 JS 文件包含在标记中的脚本标记中:

<script src="js/RouteUser.js"></script>
Run Code Online (Sandbox Code Playgroud)

并在生产代码中这样调用:

Router.routeUser(myUser)
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我该如何编写测试routeUser方法的测试?我在摩卡测试中试过这个:

var router = require('../../main/resources/public/js/RouteUser');

suite('Route User Tests', function () {
    test('Route The User', function () {
        if (!router)
            throw new Error("failed!");
        else{
            router.routeUser("Me")
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外:

TypeError: router.routeUser is not a function
at Context.<anonymous> (src\test\js\RouteUser.test.js:8:20)
Run Code Online (Sandbox Code Playgroud)

然后我尝试返回该方法,它给出了相同的错误:

var Router = (function (router) …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing mocha.js iife

3
推荐指数
2
解决办法
3698
查看次数

在 Node 中使用 http-proxy 时 UNABLE_TO_VERIFY_LEAF_SIGNATURE

全部,

我正在尝试创建一个简单的代理,它将所有请求逐字转发到另一台服务器。为此,我使用“http-proxy”npm。我正在尝试从本地服务器转到云服务器。起初,当我设置 http 代理时,我看到一个错误“无法验证第一个证书”。经过在线研究后,我发现这可能与我拥有自签名证书有关。因为它是自签名的,所以它不在证书存储中,因此无法进行验证。但是,因为我在开发过程中不需要这个,所以我添加了“secure: false”来忽略证书验证。我知道这对于生产来说是不安全的,但我现在只是想解决这个问题。这次更新实际上解决了这个错误。

现在,我收到另一个错误“UNABLE_TO_VERIFY_LEAF_SIGNATURE”。

任何人都可以帮我弄清楚如何消除这个错误吗?我尝试添加以下内容: process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'

但这仍然显示错误。我在 http 代理发出的事件中看到错误(有关此事件,请参阅下面的代码)。如果我深入了解“proxyRes”,我可以在 proxyRes -> 连接 -> 授权错误 -> UNABLE_TO_VERIFY_LEAF_SIGNATURE 中看到此错误

下面是我的代码:

'use strict'
require('dotenv').config({silent: true})
var util = require('util');
const loggerFactory = require('./utils/logger')
const express = require('express')
const defaultRouter = require('./routes/default')
var logger = loggerFactory.consoleLogger
const proxy = require('http-proxy');

module.exports = (config) => {
const app = express()
// app.use(loggerFactory.requestLogger())
app.set('json spaces', 2)
app.set('port', config.express.port)

app.use('', defaultRouter)

process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'
var apiProxy = proxy.createProxyServer({});
var proxyUrl = process.env.HOMEINSPECTIONSERVER_URL;

app.use((req,res,next) …
Run Code Online (Sandbox Code Playgroud)

self-signed http-proxy node.js

1
推荐指数
1
解决办法
5842
查看次数