作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我查看了官方指南 http://yeoman.io/authoring/testing.html
但这让我有点困惑。helpers.run
返回一个运行上下文,我可以在其上调用方法等。
但是我很困惑如何测试文件是否存在(使用 assert.file
)
我的印象是helpers.run
将在内存或文件系统中创建文件。但是assert.file
总是失败。
对于运行测试之前文件系统上存在的文件,它不会失败。
当我运行我的生成器(yo my-generator)时,我看到文件已创建。
如何测试文件是否已创建?
到目前为止,这是我的代码,但它不起作用。
我正在使用 Jasmine 进行测试。
let helpers = require('yeoman-test');
let assert = require('yeoman-assert');
describe('generator:test', function () {
let path = require('path');
beforeEach(function () {
console.log(path.join(__dirname, '../generators/app'));
// The object returned acts like a promise, so return it to wait until the process is done
helpers.run(path.join(__dirname, '../generators/app'))
.withPrompts({
name: 'test',
appName: 'test',
appTitle: 'test',
apiEndpoint: 'http://localhost'
});
})
it('all config files', function () {
assert.file(#arrayOfFiles#);
});
});
最佳答案
我知道这是一个老问题,但由于它在谷歌测试 Yeoman 生成器的搜索结果中排名相当高,尝试回答它似乎很有用:
您的 beforeAll 需要返回 helpers.run 返回的 Promise。否则测试运行器将不会在运行实际测试之前等待足够长的时间,并且文件将不存在。所以你的例子应该是这样的:
let helpers = require('yeoman-test');
let assert = require('yeoman-assert');
describe('generator:test', function () {
let path = require('path');
beforeEach(function () {
return helpers.run(path.join(__dirname, '../generators/app'))
.withPrompts({
name: 'test',
appName: 'test',
appTitle: 'test',
apiEndpoint: 'http://localhost'
});
})
it('all config files', function () {
assert.file(#arrayOfFiles#);
});
});
关于unit-testing - 如何对自耕农生成器进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46149533/
我是一名优秀的程序员,十分优秀!