我使用的是Mocha,Chai,Sinon,Proxyquire和Nock.
对于这个特定的测试场景(正在询问此问题),希望多次测试完全相同的URL,每个URL都在一个需要不同响应的单独测试中.
例如,没有商家Feed,1个商家Feed,还有2个商家Feed的响应.
现有的代码都可以工作,而且如果我单独运行测试,它们就会通过.
但是,如果我在一个套件中使用Mocha一起运行它们就会失败.相信问题是Nock劫持了给定URL的全局http对象,并且每个测试(同时异步运行)都在竞争相同的全局响应引用.
在上面的场景中,使用1个商家的预设回复准备的回复正在被设置覆盖以回复2个商家等.
是否存在避免这种情况发生的机制,例如保证异步Mocha测试用例的串行执行(我认为这是默认行为).
有一个Java spring MVC web应用程序,并正在发出jquery ajax post请求.我的控制器设置为接收和发送json数据.一切正常,JSON字符串格式良好,Controller可以创建并填充Command对象,并使用JSON请求数据的内容填充它.但是,我正在更新Contact对象的数据,而我的JSP表单元素仅包含数据库更新所需的所有数据的子集.在我对具有表单的JSP页面的初始GET请求中,我从数据库中检索所有必需的数据,填充Contact Command对象,然后将该命令对象绑定到Model.
如果我正在进行正常的POST提交表单提交,我相信只是将我的命令对象声明为@SessionAttribute,并在我的onSubmit()POST方法中使用@ModelAttribute引用该Command对象就足够了.Spring将从我的会话中检索已填充的命令对象,然后绑定(覆盖)由于POST请求而更改的那些值.然后,可以将此更新的命令对象用作DB更新的参数.
但是,我正在使用Spring 3并利用@RequestBody参数类型.我无法让Spring给我会话对象并自动绑定请求中的新值.它或者只提供旧的会话命令对象(不应用更改)或仅提供POST请求中的值的新命令对象.
这是一个小代码 - 不起作用:
@SessionAttributes("contactCommand")
@Controller
public class ContactController {
@RequestMapping(value = "/editContact", method=RequestMethod.GET)
public String init(ModelMap model, Locale locale, HttpServletRequest request, HttpServletResponse response) throws GeneralException {
final ContactCommand cmd = new ContactCommand();
// populate with data from DB etc
model.addAttribute("contactCommand", cmd);
// etc
}
@RequestMapping(value="/editContact",method=RequestMethod.POST, consumes = "application/json", produces = "application/json")
public @ResponseBody Map<String, ? extends Object> editContactInfo(@RequestBody @ModelAttribute("contactCommand") ContactCommand cmd, HttpServletRequest request, HttpServletResponse response) throws GeneralException {
// do …
Run Code Online (Sandbox Code Playgroud) 使用Highcharts(v.3.0.5)时,我在同一图表中显示多个Y轴.使用图例,用户可以根据需要选择隐藏或显示任何Y轴.所有这些都是Highcharts javascript库的功能.但是,当隐藏Y轴时,其标题仍然在图表中可见.当隐藏Y轴的其余部分时,我想隐藏它.感到惊讶的是,这不是默认行为.有谁知道这是怎么做到的吗?
通过查看Highcharts示例页面上提供的示例可以看到该行为:
http://www.highcharts.com/demo/combo-multi-axes
例如,如果隐藏"降雨量"轴,则标题在图表中保留为"降雨量".
我发现这篇文章(几年前),其中提出了完全相同的问题.但是,提出的解决方案不起作用.显示和隐藏事件,重新显示一切.
http://forum.highcharts.com/highcharts-usage/how-to-hide-y-axis-title-multiple-axis-t6973/#p32842
AngularJS是一个优秀的框架,ng-grid非常适合快速获得丰富的表功能.然而,由于缺少任何文档,我真的很难理解ng-grid的一部分是ng-grid分页的预期行为.我可以阅读ng-grid入门站点上提供的代码和示例.但是我无法理解它不能正常工作的事实是我自己的用户错误,或者是否使用我正在使用的角度版本来破坏ng-grid行为.
从Versions开始,我在Angular 1.2.17,angular-grid(ng-grid)2.0.11上,并且有Jquery 2.1(比ng-grid使用的默认依赖版本更早).
问题1:分页是服务器端还是客户端?换句话说,API调用是期望从服务器中删除每个结果集行,然后在UI中对其进行分页,或者它是否真的可以使用say query params limit = x&offset = y进行服务器端分页.
问题2:如果ng-grid没有预先提取整个结果集 - 当分页工作时,ng-grid如何知道物品的总数是多少?
下面的我的UI代码工作正常,$ scope.getPagedDataAsync被调用,进入服务器并下拉定义的限制和偏移量.
假设我在服务器上有50条记录.我要求limit = 10&offset = 10 - 这将从服务器等给我11-20记录.
$scope.getPagedDataAsync = function (pageSize, page, searchText) {
setTimeout(function () {
var data, limit = pageSize, offset = ((page * pageSize) - pageSize);
if (searchText) {
var ft = searchText.toLowerCase();
DfmAdminAgency.query(function (largeLoad) {
data = largeLoad.filter(function (item) {
return JSON.stringify(item).toLowerCase().indexOf(ft) !== -1;
});
$scope.setPagingData(data, page, pageSize);
});
} else {
DfmAdminAgency.query({limit: pageSize, offset: offset}, function (largeLoad) { …
Run Code Online (Sandbox Code Playgroud) 我有以下功能来测试:
// ...
const local = new WeakMap();
export default class User {
// ...
async password(password) {
if (!password) return local.get(this).get('hash'); // remove this for security reasons!
if (password.length < 6) throw new Error('New password must be at least 6 characters long');
if (!password.match(passwordPattern)) throw new Error(`New password must match ${passwordPattern}`);
local.get(this).set('hash', await Password.hash(password));
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
现在我想用mocha,chai和chai-as- promise来测试这个函数做这个测试用例:
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import User from '../../../server/User';
chai.use(chaiAsPromised); …
Run Code Online (Sandbox Code Playgroud) 正在研究 Google Slides(Google 文档的一部分),并希望使用AWS 架构图标集。
该页面提供了对包括 PowerPoint 在内的许多应用程序的支持,但我没有找到有关 Google 幻灯片最佳实践使用的信息。谷歌搜索也没有发现任何东西。
我可以下载图标,然后手动单独添加到我的演示文稿(根据需要),但希望有一个“内置调色板”之类的解决方案。任何有知识的人都可以建议最佳方法以及是否有比根据需要手动上传更好的方法来做到这一点。
具有以下“应用程序”,并且window.location
不可配置。理想情况下,我想点击提交按钮并转到备用域。这实际上是更大应用程序的一部分,我在其中使用外部身份提供程序进行登录。下面的代码段是一个完整的示例来说明这个问题:
import React from 'react';
import { render } from 'react-dom';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import Router from './routes';
import reducers from './reducers';
import { BrowserRouter, Route, Switch } from 'react-router-dom';
const store = createStore(reducers);
class Signin extends React.Component {
onSubmit() {
var result = Object.getOwnPropertyDescriptor(window, 'location');
window.location = 'http://www.bbc.co.uk';
}
render() {
return (
<div>
<form
className="form-horizontal col-xs-10 col-xs-offset-1"
onSubmit={this.onSubmit.bind(this)}
>
<div className="form-group">
<span className="col-xs-3" />
<div className="col-sm-6">
<button …
Run Code Online (Sandbox Code Playgroud) javascript ×3
ajax ×1
angularjs ×1
async-await ×1
bdd ×1
controller ×1
ecmascript-7 ×1
highcharts ×1
icons ×1
java ×1
json ×1
mocha.js ×1
ng-grid ×1
node.js ×1
react-router ×1
reactjs ×1
slide ×1
spring-mvc ×1
testing ×1