我在Express中有以下内容
//index.js
var service = require('./subscription.service');
var auth = require('../auth/auth.service');
var router = express.Router();
router.post('/sync', auth.isAuthenticated, service.synchronise);
module.exports = router;
我想覆盖或模拟isAuthenticated返回此
auth.isAuthenticated = function(req, res, next) {
return next();
}
这是我的单元测试:
it('it should return a 200 response', function(done) {
//proxyquire here?
request(app).post('/subscriptions/sync')
.set('Authorization','Bearer '+ authToken)
.send({receipt: newSubscriptionReceipt })
.expect(200,done);
});
我已经尝试使用proxyquire嘲笑index.js-我想我需要对路由器存根吗?我也尝试在测试中改写
app.use('/subscriptions', require('./api/subscription'));
必须有一种简单的方法可以模拟这种情况,因此我不需要对请求进行身份验证。有任何想法吗?
您可以使用sinon
to stub
isAuthenticated
方法,但是应该auth.isAuthenticated
在将对的引用设置为中间件之前进行此操作,因此在创建index.js
and
之前需要这样做app
。您最有可能希望将其beforeEach
挂钩:
var app;
var auth;
beforeEach(function() {
auth = require('../wherever/auth/auth.service');
sinon.stub(auth, 'isAuthenticated')
.callsFake(function(req, res, next) {
return next();
});
// after you can create app:
app = require('../../wherever/index');
});
afterEach(function() {
// restore original method
auth.isAuthenticated.restore();
});
it('it should return a 200 response', function(done) {
request(app).post('/subscriptions/sync')
.set('Authorization','Bearer '+ authToken)
.send({receipt: newSubscriptionReceipt })
.expect(200,done);
});
请注意,即使在auth.isAuthenticated
还原后,现有app
实例也将具有存根作为中间件,因此,app
如果由于某种原因需要获得原始行为,则需要创建另一个实例。
我正在尝试用.NET中的LDAP制作一个简单的身份验证系统。我检查了.NET中的一些名称空间,并简单地制作了标准代码片段,如下所示。 我有一个管理员用户名和密码和,用于对客户端应用程序进行身份验证。我有第二个用户名和密码和,需要在LDAP中检查才能登录。 是管理帐户,只是LDAP中的用户。那么如何检查的密码呢?
我试图弄清楚如何进行单元测试,如果我的控制器的URL是正确的安全的。以防万一有人改变了周围的东西,不小心移除了安全设置。 我的controller方法如下所示: 我设置了一个WebTestEnvironment,如下所示: null 然而,如果仔细观察,这只在不向URL发送实际请求时才有帮助,而只在功能级别上测试服务时才有帮助。在我的案例中,抛出了“拒绝访问”异常: 以下两条日志消息值得注意,基本
问题内容: 我已经通过使用nodejs + express制作了简单的nodejs应用程序。现在,我要进行用户身份验证。我想通过使用猫鼬来实现会话处理。你能举个例子吗? 问题答案: 一些有用的链接: 如何在node.js中实现登录身份验证 在node.js和mongodb中创建注册和登录表单 另外,会话管理不是由Mongoose完成,而是由connect-mongodb或connect- redi
问题内容: 我正在使用Python在系统级别的Linux中进行项目。因此,我想知道,如果我以普通用户身份运行代码,并且正在访问系统文件,那么它应该具有root权限,那么我如何提示输入root密码并以超级用户身份运行其他代码。我想知道,如何以超级用户身份以密码提示运行python脚本。 任何帮助将不胜感激。先感谢您.. 问题答案: 您可以做的另一件事是,如果脚本不是以root身份执行的,则脚本会自动
问题内容: 我试图弄清楚如何对我的控制器的URL进行适当安全的单元测试。以防万一有人更改周围的内容并意外删除安全设置。 我的控制器方法如下所示: 我像这样设置一个WebTestEnvironment: 在我的实际测试中,我尝试执行以下操作: JUnit如何测试@PreAuthorize批注及其由spring MVC控制器指定的spring EL? 但是,如果仔细观察,这仅在不向URL发送实际请求时