คำถามติดแท็ก mocha

Mocha.js คือเฟรมเวิร์กการทดสอบ JavaScript ที่มีฟีเจอร์มากมายซึ่งทำงานบน Node.js และเบราว์เซอร์

8
วิธีเพิ่มการหมดเวลาสำหรับกรณีทดสอบเดียวในมอคค่า
ฉันกำลังส่งคำขอเครือข่ายในกรณีทดสอบ แต่บางครั้งใช้เวลานานกว่า 2 วินาที (การหมดเวลาเริ่มต้น) ฉันจะเพิ่มการหมดเวลาสำหรับกรณีทดสอบเดียวได้อย่างไร
405 mocha 

11
จะทำการทดสอบเดี่ยวกับ Mocha ได้อย่างไร
ฉันใช้ Mocha เพื่อทดสอบ JavaScript ของฉัน ไฟล์ทดสอบของฉันมี 5 การทดสอบ เป็นไปได้หรือไม่ที่จะรันการทดสอบเฉพาะ (หรือชุดการทดสอบ) แทนการทดสอบทั้งหมดในไฟล์?
292 javascript  mocha 

3
รหัสครอบคลุมกับมอคค่า
ฉันใช้มอคค่าสำหรับทดสอบแอปพลิเคชัน NodeJS ของฉัน ฉันไม่สามารถหาวิธีใช้คุณสมบัติครอบคลุมรหัสได้ ฉันลอง googling แล้ว แต่ไม่พบบทแนะนำที่เหมาะสม กรุณาช่วย.

7
มอคค่า / ชัยคาดว่าจะไม่โยนข้อผิดพลาดที่ส่งออกไป
ฉันมีปัญหาในการให้ Chai expect.to.throwทำงานทดสอบแอพ node.js ของฉัน การทดสอบล้มเหลวในข้อผิดพลาดที่ส่งออกมา แต่ถ้าฉันปิดกรณีทดสอบเพื่อลองจับและยืนยันข้อผิดพลาดที่ตรวจพบ ไม่expect.to.throwทำงานเหมือนที่ฉันคิดว่าควรหรืออะไร? it('should throw an error if you try to get an undefined property', function (done) { var params = { a: 'test', b: 'test', c: 'test' }; var model = new TestModel(MOCK_REQUEST, params); // neither of these work expect(model.get('z')).to.throw('Property does not exist in …



7
ในการทดสอบมอคค่าขณะที่เรียกใช้ฟังก์ชันอะซิงโครนัสวิธีหลีกเลี่ยงข้อผิดพลาดการหมดเวลา: เกินกำหนดเวลาเกิน 2000 มิลลิวินาที
ในแอปพลิเคชันโหนดของฉันฉันใช้มอคค่าเพื่อทดสอบรหัสของฉัน ในขณะที่เรียกฟังก์ชั่นอะซิงโครนัสจำนวนมากโดยใช้มอคค่าฉันจะได้รับข้อผิดพลาดการหมดเวลา ( Error: timeout of 2000ms exceeded.) ฉันจะแก้ไขปัญหานี้ได้อย่างไร var module = require('../lib/myModule'); var should = require('chai').should(); describe('Testing Module', function() { it('Save Data', function(done) { this.timeout(15000); var data = { a: 'aa', b: 'bb' }; module.save(data, function(err, res) { should.not.exist(err); done(); }); }); it('Get Data By Id', function(done) { var …
200 node.js  mocha  chai 

7
วิธีการเข้าถึงและทดสอบฟังก์ชั่นภายใน (ไม่ใช่การส่งออก) ในโมดูล node.js?
ฉันพยายามหาวิธีการทดสอบฟังก์ชั่นภายใน (เช่นไม่ส่งออก) ใน nodejs (ควรมีมอคค่าหรือจัสมิน) และฉันก็ไม่รู้เลย! สมมติว่าฉันมีโมดูลเช่นนั้น: function exported(i) { return notExported(i) + 1; } function notExported(i) { return i*2; } exports.exported = exported; และการทดสอบต่อไปนี้ (มอคค่า): var assert = require('assert'), test = require('../modules/core/test'); describe('test', function(){ describe('#exported(i)', function(){ it('should return (i*2)+1 for any given i', function(){ assert.equal(3, test.exported(1)); assert.equal(5, test.exported(2)); }); …

4
เปลี่ยนการหมดเวลาเริ่มต้นของมอคค่า
หากเรามีไฟล์ทดสอบหน่วย my-spec.js และทำงานกับมอคค่า: mocha my-spec.js การหมดเวลาเริ่มต้นจะเป็น 2000 มิลลิวินาที สามารถเขียนทับสำหรับการทดสอบบางส่วนด้วยพารามิเตอร์บรรทัดคำสั่ง: mocha my-spec.js --timeout 5000 เป็นไปได้หรือไม่ที่จะเปลี่ยนการหมดเวลาเริ่มต้นทั่วโลกสำหรับการทดสอบทั้งหมด? เช่นค่าการหมดเวลาเริ่มต้นจะแตกต่างจาก 2000 ms เมื่อคุณโทร: mocha my-spec.js


4
ฉันจะทดสอบสัญญาอย่างถูกต้องกับมอคค่าและชัยได้อย่างไร
การทดสอบต่อไปนี้ทำงานผิดปกติ: it('Should return the exchange rates for btc_ltc', function(done) { var pair = 'btc_ltc'; shapeshift.getRate(pair) .then(function(data){ expect(data.pair).to.equal(pair); expect(data.rate).to.have.length(400); done(); }) .catch(function(err){ //this should really be `.catch` for a failed request, but //instead it looks like chai is picking this up when a test fails done(err); }) }); ฉันจะจัดการสัญญาที่ถูกปฏิเสธได้อย่างไร (และทดสอบ) ฉันควรจัดการกับการทดสอบที่ล้มเหลวได้อย่างไร …
148 node.js  promise  mocha  chai 

14
วิธีการข้ามการทดสอบในมอคค่าโดยทางโปรแกรมหรือไม่
ฉันมีรหัสที่การทดสอบบางอย่างจะล้มเหลวในสภาพแวดล้อม CI เสมอ ฉันต้องการปิดการใช้งานพวกเขาตามสภาพแวดล้อม วิธีการข้ามการทดสอบโดยทางโปรแกรมในมอคค่าในระหว่างการดำเนินการรันไทม์?
142 mocha 

9
การละเมิดที่ไม่คงที่: ไม่พบ“ ร้านค้า” ในบริบทหรืออุปกรณ์ประกอบฉากของ“ เชื่อมต่อ (SportsDatabase)”
รหัสเต็มได้ที่นี่: https://gist.github.com/js08/0ec3d70dfda76d7e9fb4 สวัสดี ฉันมีแอปพลิเคชั่นที่จะแสดงเทมเพลตที่แตกต่างกันสำหรับเดสก์ท็อปและมือถือตามสภาพแวดล้อมการสร้าง ฉันสามารถพัฒนามันได้โดยที่ฉันต้องการซ่อนเมนูนำทางสำหรับเทมเพลตมือถือของฉัน ตอนนี้ฉันสามารถเขียนกรณีทดสอบหนึ่งกรณีซึ่งดึงค่าทั้งหมดผ่าน proptypes และแสดงอย่างถูกต้อง แต่ไม่แน่ใจว่าจะเขียนกรณีทดสอบหน่วยได้อย่างไรเมื่ออุปกรณ์เคลื่อนที่ไม่ควรแสดงองค์ประกอบการนำทาง ฉันพยายาม แต่ฉันพบข้อผิดพลาด ... คุณสามารถบอกฉันได้ว่าจะแก้ไขได้อย่างไร รหัสด้านล่าง กรณีทดสอบ import {expect} from 'chai'; import React from 'react'; import TestUtils from 'react-addons-test-utils'; import {SportsTopPortion} from '../../../src/components/sports-top-portion/sports-top-portion.jsx'; require('../../test-utils/dom'); describe('"sports-top-portion" Unit Tests', function() { let shallowRenderer = TestUtils.createRenderer(); let sportsContentContainerLayout ='mobile'; let sportsContentContainerProfile = {'exists': 'hasSidebar'}; let …
142 reactjs  mocha  redux 

6
วิธีการจำลองการนำเข้าโมดูล ES6 ได้อย่างไร
ฉันมีโมดูล ES6 ต่อไปนี้: network.js export function getDataFromServer() { return ... } widget.js import { getDataFromServer } from 'network.js'; export class Widget() { constructor() { getDataFromServer("dataForWidget") .then(data => this.render(data)); } render() { ... } } getDataFromServerฉันกำลังมองหาวิธีการทดสอบเครื่องมือที่มีอินสแตนซ์ของจำลอง ถ้าฉันใช้<script>s แยกต่างหากจากโมดูล ES6 เช่นเดียวกับใน Karma ฉันสามารถเขียนการทดสอบของฉันเช่น: describe("widget", function() { it("should do stuff", function() { let …

8
ทำความสะอาดต้นขั้ว Sinon ได้อย่างง่ายดาย
มีวิธีในการรีเซ็ตสไปซ์ไซนอนม็อกและต้นขั้วทั้งหมดอย่างง่ายดายซึ่งจะทำงานได้อย่างหมดจดกับมอคค่าก่อนหน้าแต่ละบล็อก ฉันเห็นว่าแซนด์บ็อกซ์เป็นตัวเลือก แต่ฉันไม่เห็นว่าคุณจะใช้แซนด์บ็อกซ์ได้อย่างไร beforeEach -> sinon.stub some, 'method' sinon.stub some, 'mother' afterEach -> # I want to avoid these lines some.method.restore() some.other.restore() it 'should call a some method and not other', -> some.method() assert.called some.method

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.