Cho rằng tôi có hai lớp ES6.Làm thế nào để mô phỏng các lớp phụ thuộc để thử nghiệm đơn vị với mocha.js?
Đây là class A:
import B from 'B';
class A {
someFunction(){
var dependency = new B();
dependency.doSomething();
}
}
Và lớp B:
class B{
doSomething(){
// does something
}
}
tôi kiểm tra đơn vị sử dụng mocha (với babel cho ES6), chai và Sinon, hoạt động thực sự tuyệt vời. Nhưng làm thế nào tôi có thể cung cấp một lớp giả cho lớp B khi kiểm tra lớp A?
Tôi muốn thử toàn bộ lớp B (hoặc hàm cần thiết, không thực sự quan trọng) để lớp A không thực thi mã thực nhưng tôi có thể cung cấp chức năng kiểm tra.
Đây là, những gì các thử nghiệm mocha trông giống như bây giờ:
var A = require('path/to/A.js');
describe("Class A",() => {
var InstanceOfA;
beforeEach(() => {
InstanceOfA = new A();
});
it('should call B',() => {
InstanceOfA.someFunction();
// How to test A.someFunction() without relying on B???
});
});
đọc về [DI] (https://en.wikipedia.org/wiki/Dependency_injection) – Mritunjay