所以基本上当组件安装时,我有一个事件监听器监听resize事件.它切换isMobileView状态,然后将其作为道具传递给子项.因此,这是必要的,这是有效的,并经过测试.我是一个相当新的测试人员,我正试图找出一种方法,我可以编写一个测试来调整窗口大小并使所有逻辑发生并测试它是如何执行的.
这是代码 -
componentDidMount() {
this.setMobileViewState()
window.addEventListener('resize', this.setMobileViewState.bind(this));
}
setMobileViewState() {
if(document.documentElement.clientWidth <= this.props.mobileMenuShowWidth) {
this.setState({ isMobileView: true })
} else {
this.setState({ isMobileView: false })
}
}
Run Code Online (Sandbox Code Playgroud)
我知道代码有效,但我想为它编写一个测试.基本上只是确保状态正确变化的东西.
我正在尝试设置,因此存储桶可以容纳的唯一文件类型是png,jpeg和gif图像.我正试图像这样制定一个桶政策
{
"conditions": [
{"bucket": "bucketname"},
["starts-with", "$Content-Type", "image/jpeg"],
["starts-with", "$Content-Type", "image/png"],
["starts-with", "$Content-Type", "image/gif"],
["content-length-range", 0, 10485760]
]
}
Run Code Online (Sandbox Code Playgroud)
然后我也试图限制大小但是当我尝试更新我的策略时,我收到错误"无效的策略元素 - 条件"
我尝试使用这里的答案 - s3直接上传限制文件的大小和类型,这是我编写代码的地方,但我不确定这样做的正确方法,因为我的政策甚至不被亚马逊接受.
我正在按照教程并设置我的代码..但是当我运行它时,我会收到一条错误消息
“(索引):18 未捕获的 InvalidStateError:无法在“CanvasRenderingContext2D”上执行“drawImage”:提供的 HTMLImageElement 处于“损坏”状态。”
这是我在 indexSoccer.html 文件中运行的代码,
var ctx = document.getElementById("ctx").getContext("2d");
var Img = {};
Img.player = new Image();
Img.player.src = 'images/cat1sprite.png';
drawPlayer = function(player){
ctx.save();
var x = player.x;
var y = player.y;
ctx.drawImage(Img.player, x, y);
ctx.restore();
}
Run Code Online (Sandbox Code Playgroud)
我的目录如下所示 -
有什么想法为什么吗?
当我从我的快速路径发送一个包含对象数组的对象到我的客户端时,我得到一个[Object对象],然后当我尝试对它进行字符串化时,我得到这个带有此控制台消息的疯狂字符串
var messages = "<%=(JSON.stringify(messages))%>"
console.log(messages)
Run Code Online (Sandbox Code Playgroud)
将其打印到控制台......
{"messages":[{"content":"cool mane","creator":"joe"},{"content":"test 4","creator":"joe"},{"content":" ewgdqf","creator":"joe"},
Run Code Online (Sandbox Code Playgroud)
它应该是一些东西,所以我可以通过做消息[0] .content迭代它,但我得到这个疯狂的字符串,不会让我做任何事情...
如果我尝试遍历它,它只会打印出每个字符.
所以我有一个用express和node设置的公共文件夹目录。
所以像这样的东西工作得很好 -
var testImage = new Image();
testImage.src = '/images/png/avatar.png';
Run Code Online (Sandbox Code Playgroud)
但问题是我想要获取的 png 文件夹中有一堆图片。
我怎样才能去做类似的事情
var imageFolder = new Folder();
var imageList = [];
imageFolder.src = '/images/png';
for(var image in imageFolder){
imageList.push(imageFolder[image])
}
Run Code Online (Sandbox Code Playgroud) 我在我的服务器上签署 URL 并将其发送回客户端,它工作正常。这是该函数的外观
const aws = require('aws-sdk'),
config = require('config'),
crypto = require('crypto');
module.exports = async function(file_type) {
aws.config.update({accessKeyId: config.AWS_ACCESS_KEY, secretAccessKey: config.AWS_SECRET_KEY})
const s3 = new aws.S3();
try {
if (!file_type === "image/png") {
return ({success: false, error: 'Please provide a valid video format'});
}
let buffer = await crypto.randomBytes(12);
let key = buffer.toString('hex');
let options = {
Bucket: config.AWS_S3_BUCKET,
Key: key,
Expires: 60,
ContentType: file_type,
ACL: 'public-read',
}
let data = await s3.getSignedUrl('putObject', options);
console.log('data was', data)
return ({ …Run Code Online (Sandbox Code Playgroud) 假设您有3个功能,即功能A,功能B和功能C
functionC依赖于functionA和functionB
functionA(a) {
return a
}
functionB(b) {
return b
}
functionC(a, b){
return functionA(a) + functionB(b);
}
Run Code Online (Sandbox Code Playgroud)
现在,这显然是一个超级简化的示例..但是,测试functionC的正确方法是什么?如果我已经在测试functionA和functionB,并且它们通过了,就不会测试functionC,而不仅仅是单元测试,因为它将依赖于functionA和functionB返回。
toggleMenu(element) {
const el = element.target
if(hasClass(el, this.activeClass)){
el.classList.remove(this.activeClass)
} else {
el.classList.add(this.activeClass)
}
}
<div onClick={ this.toggleMenu.bind(this) } style={this.style} className ="vis-menu-toggle">
<div className="box" style={styles.box}>
<div className="top" style={styles.topLine}/>
<div className="middle" style={styles.middleLine}/>
<div className="top" style={styles.bottomLine}/>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想在单击时向父 div 添加一个类,但如果单击内部 div,则目标元素不是父元素,并且子元素会收到该类。我该如何防止这种情况发生?