gpt4 book ai didi

unit-testing - 如何对自耕农生成器进行单元测试

转载 作者:行者123 更新时间:2023-12-04 18:33:18 25 4
gpt4 key购买 nike

我查看了官方指南 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com