我们的工作流程包括使用ES6模块。这还包括单元测试。我们正在测试import
个模块。问题是原始作者决定让每个模块返回对象,因此我们在整个代码库中都有全局单例(因为ES6导入的工作原理) - 一个典型的单元测试问题。
有没有办法重置"在每次测试后用SystemJS表示模块?
样本单元测试(由karma-systemjs加载):
import MUT from './Mut' // module under test
describe('MUT', () => {
it('should do stuff', () => {
MUT.value = 'foo'
})
it('should do more stuff', () => {
// value should not be 'foo' here. How do you reset MUT?
})
答案 0 :(得分:2)
在Github上查看this issue,特别是this comment。
尝试删除然后在using (HttpWebClient client = new HttpWebClient())
{
client.Headers[HttpRequestHeader.Authorization] = $"Bearer { _token }";
client.Headers[HttpRequestHeader.ContentType] = "application/json";
client.UploadData(_url, Encoding.UTF8.GetBytes(_data));
string queryString = client.ResponseUri.Query.Split('=').Last();
}
块中重新导入模块,如下所示:
beforeEach