我正在使用Mocha以便对为node.js编写的应用程序进行单元测试
我想知道是否可以对模块中未导出的功能进行单元测试。
例:
我在其中定义了很多功能 foobar.js
function private_foobar1(){
...
}
function private_foobar2(){
...
}
以及一些作为公共导出的功能:
exports.public_foobar3 = function(){
...
}
测试用例的结构如下:
describe("private_foobar1", function() {
it("should do stuff", function(done) {
var stuff = foobar.private_foobar1(filter);
should(stuff).be.ok;
should(stuff).....
显然,这是行不通的,因为private_foobar1
没有导出。
对私有方法进行单元测试的正确方法是什么?摩卡咖啡有内置的方法吗?
如果模块未导出功能,则模块外部的测试代码无法调用该功能。那是由于JavaScript的工作方式,而Mocha本身无法规避这一点。
在我确定测试私有功能是正确的事情的少数情况下,我要做的是设置一些环境变量,模块会检查该环境变量以确定其是否在测试设置中运行。如果它在测试设置中运行,那么它将导出其他函数,然后在测试过程中可以调用这些函数。
这里宽松地使用“环境”一词。这可能意味着检查process.env
或其他可以与“您正在接受测试”模块通信的内容。我必须执行此操作的实例是在RequireJS环境中,并且我已经module.config
为此目的使用过。
问题内容: 我有一个基于Express.js构建的应用程序,我想测试文件上传功能。我正在尝试重现解析为req.files的对象(使用express.bodyParser中间件时)。我怎样才能做到这一点? 问题答案: 您可以直接在Mocha中执行此操作,但这有点棘手。这是发布图像的示例: Content-Disposition 的 name 参数是通过req.files(以req.files.ima
我有这样一个简单的课程: 我想为它写一个测试,下面是一个框架: ErrorLogger类中的logger是由StaticLoggerBinder提供的,所以我的问题是-如何让它工作,以便那些检查“1*logger.error(u作为字符串)”可以工作?在ErrorLogger类中,我找不到一种恰当的方式来嘲笑那个记录器。我曾考虑过反射,并以某种方式访问它,此外,mockito注入也有一个想法(但如
我有DaoImpl类: 我的测试是: 测试是成功的,但是当我运行具有覆盖率的junit测试时,它显示方法没有被覆盖,因此我的整体单元测试行覆盖率低于要求。我们能涵盖那部分吗?如果是,我们怎么做?谢了。
问题内容: 我对Node相对较新,并且正在使用knex和书架进行项目。我在对代码进行单元测试时遇到了一些麻烦,但是我不确定自己做错了什么。 基本上,我有一个看起来像这样的模型(称为VorcuProduct): 还有一个函数,如果数据库中不存在VorcuProduct,它将保存它。非常简单。执行此操作的函数如下所示: 哪种方法可以在不影响数据库的情况下进行测试?我是否需要模拟以返回模型或未定义模型(
目前正在搜索教程、解释和示例。我试过不同的例子,遇到了不同的错误。我当前的错误是: |错误编译错误编译[单元]测试:启动失败: 在我的测试报告中。它输出: 单元测试结果-摘要未执行测试。 我的“用户pec.groovy”代码是这样的: 有人能帮忙吗。我是圣杯新手。谢谢 除上述问题外,当我在课堂上省略了如下所示的禁忌: 我发现了这个错误: |运行1单元测试...1 of 1|失败:初始化错误(org
自动化测试将被用于进一步的任务中,并且还将被广泛应用在实际项目中。 为什么我们需要测试? 当我们在写一个函数时,我们通常可以想象出它应该做什么:哪些参数会给出哪些结果。 在开发期间,我们可以通过运行程序来检查它并将结果与预期进行比较。例如,我们可以在控制台中这么做。 如果出了问题 —— 那么我们会修复代码,然后再一次运行并检查结果 —— 直到它工作为止。 但这样的手动“重新运行”是不完美的。 当通