JavaScript ReferenceError - объект не определен при запуске теста npm - PullRequest
0 голосов
/ 09 июля 2019

Извините, если ответ на этот вопрос действительно очевиден, но я не могу понять, что не так.

Я сделал простое приложение для разделения счетов, которое прекрасно работает.Я пытаюсь написать тесты и использую Жасмин.

Мой код выглядит следующим образом:

    function Bill_Splitter(){

      this.amount = 0;

    };

И моя спецификация:

   describe('Bill_Splitter', function() {
     var splitter;

     beforeEach(function() {
       splitter = new Bill_Splitter();
     });

     describe('splitter', function() {
       it('has a default amount of 0', function(){
         expect(splitter.amount).toEqual(0);
       });
     });
   });

Когда я запускаю npm test в моем терминале, ошибка выглядит следующим образом:

ReferenceError: Bill_Splitter is not defined

Может кто-нибудь, пожалуйста, помогите, почему это?Я относительно новичок в JavaScript!

Спасибо :)

Обновление:

Каталог файлов:

.
├── README.md
├── girl-and-money.png
├── index.html
├── node_modules
│   ├── balanced-match
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── index.js
│   │   └── package.json
│   ├── brace-expansion
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.js
│   │   └── package.json
│   ├── concat-map
│   │   ├── LICENSE
│   │   ├── README.markdown
│   │   ├── example
│   │   │   └── map.js
│   │   ├── index.js
│   │   ├── package.json
│   │   └── test
│   │       └── map.js
│   ├── fs.realpath
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── old.js
│   │   └── package.json
│   ├── glob
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── changelog.md
│   │   ├── common.js
│   │   ├── glob.js
│   │   ├── package.json
│   │   └── sync.js
│   ├── inflight
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── inflight.js
│   │   └── package.json
│   ├── inherits
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── inherits.js
│   │   ├── inherits_browser.js
│   │   └── package.json
│   ├── jasmine
│   │   ├── Gruntfile.js
│   │   ├── MIT.LICENSE
│   │   ├── README.md
│   │   ├── bin
│   │   │   └── jasmine.js
│   │   ├── lib
│   │   │   ├── command.js
│   │   │   ├── examples
│   │   │   │   └── jasmine.json
│   │   │   ├── filters
│   │   │   │   └── console_spec_filter.js
│   │   │   ├── jasmine.js
│   │   │   └── reporters
│   │   │       ├── completion_reporter.js
│   │   │       └── console_reporter.js
│   │   └── tasks
│   │       └── jasmine.js
│   ├── jasmine-core
│   │   ├── CODE_OF_CONDUCT.md
│   │   ├── MANIFEST.in
│   │   ├── MIT.LICENSE
│   │   ├── README.md
│   │   ├── RELEASE.md
│   │   ├── bower.json
│   │   ├── ci.js
│   │   ├── images
│   │   │   ├── __init__.pyc
│   │   │   ├── __pycache__
│   │   │   │   └── __init__.cpython-36.pyc
│   │   │   ├── jasmine-horizontal.png
│   │   │   ├── jasmine-horizontal.svg
│   │   │   └── jasmine_favicon.png
│   │   ├── jasmine_core.egg-info
│   │   │   ├── PKG-INFO
│   │   │   ├── SOURCES.txt
│   │   │   ├── dependency_links.txt
│   │   │   ├── requires.txt
│   │   │   └── top_level.txt
│   │   ├── lib
│   │   │   ├── jasmine-core
│   │   │   │   ├── boot.js
│   │   │   │   ├── example
│   │   │   │   │   ├── node_example
│   │   │   │   │   │   ├── lib
│   │   │   │   │   │   │   └── jasmine_examples
│   │   │   │   │   │   │       ├── Player.js
│   │   │   │   │   │   │       └── Song.js
│   │   │   │   │   │   └── spec
│   │   │   │   │   │       ├── helpers
│   │   │   │   │   │       │   └── jasmine_examples
│   │   │   │   │   │       │       └── SpecHelper.js
│   │   │   │   │   │       └── jasmine_examples
│   │   │   │   │   │           └── PlayerSpec.js
│   │   │   │   │   ├── spec
│   │   │   │   │   │   ├── PlayerSpec.js
│   │   │   │   │   │   └── SpecHelper.js
│   │   │   │   │   └── src
│   │   │   │   │       ├── Player.js
│   │   │   │   │       └── Song.js
│   │   │   │   ├── jasmine-html.js
│   │   │   │   ├── jasmine.css
│   │   │   │   ├── jasmine.js
│   │   │   │   ├── json2.js
│   │   │   │   └── node_boot.js
│   │   │   └── jasmine-core.js
│   │   ├── package.json
│   │   └── requirements.txt
│   ├── minimatch
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── minimatch.js
│   │   └── package.json
│   ├── once
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── once.js
│   │   └── package.json
│   ├── path-is-absolute
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   └── readme.md
│   ├── spec
│   │   ├── billSplitterSpec.js
│   │   └── support
│   │       └── jasmine.json
│   ├── src
│   │   └── billSplitter.js
│   └── wrappy
│       ├── LICENSE
│       ├── README.md
│       ├── package.json
│       └── wrappy.js
├── package-lock.json
├── package.json
└── skeleton.css

1 Ответ

0 голосов
/ 09 июля 2019

Вам нужно require те файлы, которые вы хотите использовать в своих тестах следующим образом:

// Bill_Splitter.js
module.exports = function(){
    this.amount = 0;
};
// billSplitterSpec.js
const Bill_Splitter = require('../src/billSplitter')

describe('Bill_Splitter', function() {
    var splitter;

    beforeEach(function() {
        splitter = new Bill_Splitter();
    });

    describe('splitter', function() {
        it('has a default amount of 0', function(){
            expect(splitter.amount).toEqual(0);
        });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...