我最近阅读了this article的单元测试React。
作者在其中使用了如下语法:
# STATIC_URL = 'https://storage.googleapis.com/tulaibucket/static/'
if os.getenv('GAE_APPLICATION', None):
# Running on production App Engine, so use a Google Cloud SQL database.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': ‘MYHOST’,
'USER': ‘MYUSER’,
'PASSWORD': ‘MYPASSWORD’,
'NAME': ‘DBNAME’,
}
}
else:
# Running in development, so use a local MySQL database.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': '3306',
'NAME’: ‘DBNAME’,
'USER': ‘MYUSER’,
'PASSWORD': ‘MYPASSWORD’,
}
}
让我感到困惑的部分是以describe('ClickCounter component', async assert => {
const createCounter = clickCount =>
render(<ClickCounter clicks={ clickCount } />)
;
{
const count = 3;
const $ = createCounter(count);
assert({
given: 'a click count',
should: 'render the correct number of clicks.',
actual: parseInt($('.clicks-count').html().trim(), 10),
expected: count
});
}
{
const count = 5;
const $ = createCounter(count);
assert({
given: 'a click count',
should: 'render the correct number of clicks.',
actual: parseInt($('.clicks-count').html().trim(), 10),
expected: count
});
}
});
作为参数的回调函数的内容。
在其中,他只是将一个对象串连在一起。他基本上是这样做的:
assert
以某种方式执行这些对象中的代码。在我观看或阅读过的JavaScript书籍中,我从未见过这样的代码。我也从未体验过在任何其他库或框架中使用过这种语法。但是,我对其进行了测试,并且代码可以正常运行,所有测试都可以运行。
注意他怎么也从不退货。而且,即使他使用关键字const myFunc = () => {
{
// object that confuses me, with promise (`assert`) which resolves
}
{
// another object
}
}
,也不会async
。
为什么这些分块的对象有效的JavaScript?它是如何工作的?并为此有明确的命名法吗?我查看了MDN(和Google),却什么也没找到。