Я хотел бы захватить параметр, переданный методу заглушки. И тогда я могу выполнить утверждение о свойствах этого параметра. Для Java это Mockito's ArgumentCaptor. Есть ли какая-либо эквивалентная вещь в javascript test framework?Любые эквиваленты ArgumentCaptor Mockito в javascript test framework?
ответ
Вот пример:
const assert = require('chai').assert;
const expect = require('chai').expect;
const sinon = require('sinon');
const obj = {
divideByFive(a) {
return a/5;
},
testFunc(a, b) {
return this.divideByFive(a + b) + 23;
}
};
describe('obj.testFunc()',() => {
afterEach(() => {
// Restore to the original implementation
obj.divideByFive.restore();
});
it('should call divideByFive() with the right arguments',() => {
var spy = sinon.spy(obj, 'divideByFive');
obj.testFunc(42, 1337);
assert(spy.calledWith(1379));
});
it('should return the value returned by divideByFive(), increased by 23',() => {
sinon.stub(obj, 'divideByFive').returns(1234);
expect(obj.testFunc(42, 1337)).to.equal(1257);
});
});
Вы можете использовать .calledWith()
(предоставленный Синоне), чтобы проверить, если шпион/стаб был вызван с конкретными аргументами. Вы должны проконсультироваться с the documentation для получения дополнительных возможностей.
Вот автономный тест мокко, чтобы проверить, если шпион получил колл с объектом, который имел определенные свойства, установленные для конкретных значений:
const assert = require('chai').assert;
const sinon = require('sinon');
const spy = sinon.spy();
// Call the spy with an object argument.
spy({ foo : 'bar', xxx : 'yyy' });
// Check the properties.
it('should have called spy with foo:bar', function() {
assert(spy.calledWithMatch({ foo : 'bar' }));
});
it('should have called spy with xxx:yyy', function() {
assert(spy.calledWithMatch({ xxx : 'yyy' }));
});
it('should have called spy with xxx:zzz (WILL FAIL)', function() {
assert(spy.calledWithMatch({ xxx : 'zzz' }));
});
Поскольку передаваемый параметр является объектом, а не единственным значением, и я хочу проверить несколько свойств внутри этого объекта. Можно ли сделать это с помощью calledWith? – franziga
'.calledWith()' точно соответствует аргументу точно, но '.calledWithMatch()' позволит вам частично сопоставлять объекты (если, например, вы хотите удостовериться, что только определенное свойство установлено на определенное значение, независимо от любых других свойств, которые может иметь объект). – robertklep
Спасибо, я пробовал и работает. Можете ли вы привести пример с вызовомWithMatch? Поэтому я могу отметить это как ответ. – franziga
- 1. junit test with mockito using argumentCaptor
- 2. Mockito ArgumentCaptor возвращает нуль
- 3. Mockito test framework
- 4. Mockito ArgumentCaptor Захват обусловливающие Matcher
- 5. Mockito ArgumentCaptor для функции Котлина
- 6. Mockito проверить взаимодействие с ArgumentCaptor
- 7. Как создать Mockito ArgumentCaptor для примитивного типа?
- 8. test test test and mockito
- 9. Можем ли мы использовать ArgumentCaptor проверить сообщение журнала в Mockito
- 10. Mockito ArgumentCaptor захватывает несколько раз в многопоточном коде
- 11. Power Mockito test ServletOutputStream
- 12. Mockito test RestClient aSync
- 13. Javascript эквиваленты в V8?
- 14. Android Test Unit с Модернизированный и Mockito
- 15. kotlin и ArgumentCaptor - IllegalStateException
- 16. определить Mockito когда с кратному любые аргументы
- 17. Mockito test не удалось инициализировать
- 18. playframework 2.2.0 scala mockito test
- 19. Mockito test перезаписанный метод void
- 20. Javascript test test harness
- 21. Test-Framework для частного конструктора
- 22. Как использовать ArgumentCaptor с Mockito.when(). ThenReturn()
- 23. JavaScript-эквиваленты ColdFusion для #encodeForJavaScript() #
- 24. Mockito not Mocking in Instrumented Android Test
- 25. Test EntityManager с помощью JUnit Mockito
- 26. Mocktito ArgumentCaptor для Котлин лямбда с аргументами
- 27. Требуется, но не вызывать: Mockito test
- 28. Entity Framework регистрирует любые ошибки
- 29. JUnit test case with Mockito throws NullPointerException
- 30. Mockito Junit testcoverage удаление модуля test coverge
Какой Javascript тест рамки конкретно вы говорите? – robertklep
Я использую mocha + chai + sinon + издевательство. – franziga