小编rol*_*oll的帖子

未定义单元测试摩卡Visual Studio Code描述

如果我在控制台中运行,则测试运行正常

        mocha --require ts-node/register tests/**/*.spec.ts
Run Code Online (Sandbox Code Playgroud)

注意:我安装了mocha和mocha -g

我想从Visual Studio Code运行单元测试

launcgh.js文件

            "version": "0.2.0",
            "configurations": [
                {
                    "type": "node",
                    "request": "launch",
                    "name": "Mocha Tests",
                    "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
                    "args": [
                        "--require", 
                        "ts-node/register",
                        "-u",
                        "tdd",
                        "--timeout",
                        "999999",
                        "--colors",
                        "${workspaceFolder}/tests/**/*.spec.ts"
                    ],
                    "internalConsoleOptions": "openOnSessionStart"
                },
Run Code Online (Sandbox Code Playgroud)

非常简单的测试文件

            import { expect } from 'chai';
            const hello = () => 'Hello world!'; 
            describe('Hello function', () => {
                it('should return hello world', () => {
                    const result = hello();
                    expect(result).to.equal('Hello world!');
                });
            });
Run Code Online (Sandbox Code Playgroud)

但在Visual Studio Code调试控制台中

            /usr/local/bin/node --inspect-brk=15767 node_modules/mocha/bin/_mocha --require …
Run Code Online (Sandbox Code Playgroud)

unit-testing mocha.js typescript visual-studio-code

14
推荐指数
2
解决办法
2019
查看次数

Chai Mocha 测试 Promise 属性“最终”不存在

我正在尝试使用 Chai Promise 测试,但它显示了我正在使用 docker 的错误。

这里有一个简单的函数

            let funcPromise = (n) => {
                return new Promise((resolve, reject) =>{
                    if(n=="a") {
                        resolve("success");
                    }else {
                        reject("Fail")
                    }
                })
            }
Run Code Online (Sandbox Code Playgroud)

简单的测试

            import chai from 'chai';
            var chaiAsPromised = require('chai-as-promised');
            chai.use(chaiAsPromised);
            let expect = chai.expect;
            let assert = chai.assert;               

            it('connect: test promise', (done) => {
                let func = funcPromise("a");
                expect(func).to.eventually.equal("success"); // dont work
                expect(func).to.be.rejected; // dont work
            })
Run Code Online (Sandbox Code Playgroud)

终端错误 FileTest.spec.ts:43:25 - error TS2339: Property 'eventually' does not exist on type 'Assertion'.

storage/database/MongooseEngine.spec.ts:44:35 - error …

unit-testing mocha.js chai typescript

9
推荐指数
1
解决办法
4272
查看次数

是否可以使用 sinon 在 CommonJS 模块中存根导出函数?

快到2021年了,有没有办法mock单个函数呢?我的意思是没有对象的函数。

// demo.js
module.exports = () => {
  return 'real func demo';
};

// demo.test.js
const demo = require("./demo");
// ...
sinon.stub(demo).callsFake(() => {
  return 'mocked function';
});
expect(demo()).to.eq('mocked function')

Run Code Online (Sandbox Code Playgroud)

javascript mocking commonjs node.js sinon

6
推荐指数
1
解决办法
5355
查看次数

没有键值的对象作为方法参数

我正在与棱镜棱柱合作,在那prismaObjectType我看到了一些奇怪的东西。这是一个非常基本的例子。

简单的功能,demo(p) p应该是一个对象

            function demo(p) {
              console.log(p);
              console.log(p.normal);
              console.log(p.normal());
            }
Run Code Online (Sandbox Code Playgroud)

我将传递一个键normal和一个函数作为值

        demo({a:"a", normal: function(){console.log("normal")},b:"b"});
Run Code Online (Sandbox Code Playgroud)

它登录控制台

            {a: "a", normal: ƒ, b: "b"}
            ƒ (){console.log("normal")}
            "normal"
Run Code Online (Sandbox Code Playgroud)

奇怪的是我正在传递一个没有单词函数也没有键的方法

            demo({a:"a",   weird(){ console.log("it is weird") }   ,b:"b"});    

            // console

            {a: "a", weird: ƒ, b: "b"}
            ƒ weird(){console.log("it is weird")}
            it is weird             
Run Code Online (Sandbox Code Playgroud)

{a:"a", the weird part >>>>> weird(){console.log("it is weird")} <<< ,b:"b"}

这种做法的名字是什么?任何意见?

javascript

-1
推荐指数
1
解决办法
39
查看次数