【发布时间】:2019-02-04 10:05:49
【问题描述】:
使用Python 可以很容易地模拟在被测函数中使用的函数。
# my_module.py
def function_a():
return 'a'
def function_b():
return function_a() + 'b'
# tests/test_my_module.py
from unittest import TestCase
from unittest.mock import patch
from my_module import function_b
class MyModuleTestCase(TestCase):
@patch('my_module.function_a')
def test_function_b(self, mock_function_a):
mock_function_a.return_value = 'c'
self.assertEqual(function_b(), 'cb')
在JavaScript 中是否可以使用例如jest 进行类似的操作?
# myModule.js
function myFunctionA() {
return 'a';
}
export function myFunctionB() {
return myFunctionA() + 'b';
}
# __test__/test.myModule.js
import { myFunctionB } from '../myModule';
describe('myModule tests', () => {
test('myFunctionB works', () => {
// Mock `myFunctionA` return value here somehow.
expect(myFunctionB()).toBe('cb')
});
});
我已经阅读了https://github.com/facebook/jest/issues/936,但仍然不知道该怎么做,因为有很多(hacky)建议(其中一些大约 2 岁)。
【问题讨论】:
标签: javascript python testing mocking jestjs