所以我有一个现有的应用程序,它在浏览器中广泛使用 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) 全部,
我正在尝试创建一个简单的代理,它将所有请求逐字转发到另一台服务器。为此,我使用“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)