2014-12-25 20 views
5

Tôi đang cố gắng thử nghiệm kịch bản soạn thư. Trong máy phát điện của tôi, tôi gọi một máy phát điện phụ nếu một lời nhắc nhất định trả về đúngThử nghiệm bản soạn thảo của yeomanWith

if(this.bar){ 
    this.composeWith('foo:bar', {}); 
} 

Tôi rõ ràng là kiểm tra máy phát thanh phụ riêng biệt. Tuy nhiên tôi muốn có một khẳng định cho composeWith() này đã được gọi. Và tôi đoán vấn đề là khá hơn trong kỹ năng của tôi so với tài liệu kiểm tra yeoman nhưng tôi không có ý tưởng làm thế nào để làm điều này. Tôi hiểu rằng tôi cần một gián điệp và một bài sơ khai. Nhưng các tài liệu chỉ liệt kê các hàm và các bài kiểm tra cho máy phát điện yeoman chỉ là tinh thần (tôi đã cố gắng tái tạo các bước của chúng, nhưng chúng chủ yếu sử dụng núm vú giả cho mọi thứ và tôi chỉ cần loại bỏ bộ tạo phụ).

Mọi trợ giúp sẽ thực sự được đánh giá cao. Cảm ơn bạn.

Trả lời

5

Tôi thừa nhận tài liệu còn thiếu vào thời điểm này và chúng tôi có thể cải thiện nó.

Dưới đây là một ví dụ đơn giản về cách bạn có thể sử dụng một điệp viên để kiểm tra phụ máy phát điện của bạn được gọi là:

var generators = require('yeoman-generator').generators; 
var assert = require('yeoman-generator').assert; 

before(function (done) { 
    this.spy = sinon.spy(); 
    var Dummy = generators.Base.extend({ 
     exec: this.spy 
    }); 

    helpers.run('your/generator') 
     .withGenerators([ 
      [Dummy, 'foo:bar'] 
     ]) 
     .on('end', done); 
}); 

// Then in your assertions 
it('run the sub-generator', function() { 
    assert(this.spy.calledOnce); 
}); 
+1

Tôi cũng đã phải 'yêu cầu ('mocha-Sinon') 'và thay đổi' sinon.spy 'to' this.sinon.spy' để nó hoạt động. Có rất nhiều cách để có được 'sinon' trong phạm vi, vì vậy OP có thể có một thiết lập khác. – maxwellb

Các vấn đề liên quan