[解決済み] Mocha API Testing: 'TypeError: app.address is not a function' を取得する。
2022-02-10 11:37:05
質問
私の課題
私は非常にシンプルなCRUD APIをコード化し、最近になって
chai
と
chai-http
を使用してテストを実行すると、問題が発生します。
$ mocha
.
テストを実行すると、シェル上で次のようなエラーが発生します。
TypeError: app.address is not a function
私のコード
以下は、私のテストの1つのサンプルです ( /tests/server-test.js ):
var chai = require('chai');
var mongoose = require('mongoose');
var chaiHttp = require('chai-http');
var server = require('../server/app'); // my express app
var should = chai.should();
var testUtils = require('./test-utils');
chai.use(chaiHttp);
describe('API Tests', function() {
before(function() {
mongoose.createConnection('mongodb://localhost/bot-test', myOptionsObj);
});
beforeEach(function(done) {
// I do stuff like populating db
});
afterEach(function(done) {
// I do stuff like deleting populated db
});
after(function() {
mongoose.connection.close();
});
describe('Boxes', function() {
it.only('should list ALL boxes on /boxes GET', function(done) {
chai.request(server)
.get('/api/boxes')
.end(function(err, res){
res.should.have.status(200);
done();
});
});
// the rest of the tests would continue here...
});
});
そして、私の
express
アプリのファイル(
/server/app.js
):
var mongoose = require('mongoose');
var express = require('express');
var api = require('./routes/api.js');
var app = express();
mongoose.connect('mongodb://localhost/db-dev', myOptionsObj);
// application configuration
require('./config/express')(app);
// routing set up
app.use('/api', api);
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('App listening at http://%s:%s', host, port);
});
と( /server/routes/api.js ):
var express = require('express');
var boxController = require('../modules/box/controller');
var thingController = require('../modules/thing/controller');
var router = express.Router();
// API routing
router.get('/boxes', boxController.getAll);
// etc.
module.exports = router;
その他の注意事項
をログアウトしてみました。
server
変数で
/tests/server-test.js
ファイルを作成してからテストを実行してください。
...
var server = require('../server/app'); // my express app
...
console.log('server: ', server);
...
で、その結果が空のオブジェクトです。
server: {}
.
解決方法は?
アプリのモジュールで何もエクスポートしていない。app.jsファイルに以下を追加してみてください。
module.exports = server
関連
-
[解決済み] テスト
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み] React with ES7: Uncaught TypeError: Cannot read property 'state' of undefined [duplicate] (未定義のプロパティ'state'を読み込むことはできません。
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み】React-Routerの子が1つしかない。
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み】 \u003C とは何ですか?
-
[解決済み】Vueが定義されていない
-
[解決済み】Mocha / Chai expect.to.throwがスローエラーをキャッチしない
-
[解決済み】mochaのテストで非同期関数を呼び出す際のタイムアウトを回避する方法 エラー:タイムアウトの2000msを超過しました。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 Uncaught TypeError: data.push is not a function
-
[解決済み】webpack: モジュールが見つかりません。Error: 解決できない(相対パスで)
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み] テスト
-
[解決済み】npm install --legacy-peer-deps は具体的に何をするのですか?どんなときに推奨されるのか/どんな使用例が考えられるのか?
-
[解決済み】DOMException: サポートされているソースが見つからなかったため、読み込みに失敗しました。
-
[解決済み】Syntax error: JavaScriptの不正なreturnステートメント
-
[解決済み] Uncaught (in promise) TypeError: フェッチに失敗してCorsエラー