nodejs basename 方法会依据运行环境的不同选择不同的实现。
it('can get basename correctly', () => {
expect(path.win32.basename('C:\\foo\\bar\\baz.txt')).toBe('baz.txt')
expect(path.posix.basename('C:\\foo\\bar\\baz.txt')).toBe('C:\\foo\\bar\\baz.txt')
})
上面的测试用例无论在那个平台执行都是正确的。
it('can get basename correctly on windows', () => {
expect(path.basename('C:\\foo\\bar\\baz.txt')).toBe('baz.txt')
})
上面的测试用例只有在 Windows 系统执行时,才是通过的。问题来了,如何在 mac 上 mock nodejs 的运行环境,指定其为 Windows ,让这个测试用例通过?
朋友们有没有想法,一直没找到解决思路,困扰好久了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.