我知道这里已经出现了一些$state.go单元测试问题,但似乎没有一个适合我。我有一个简单的控制器逻辑来选择一个状态。
if (true) {
$state.go('home.default');
} else {
$state.go('home.new');
}为了测试哪个状态被击中,我尝试了以下方法:
it('should return a state', function () {
spyOn($state, 'go');
$state.go('home.default');
expect($state.go).toHaveBeenCalledWith('home.default');
});这总是因为行$state.go('home.default');使测试变得多余,因为我只是调用我想要的状态,然后测试它。我想知道控制器调用的是哪个状态。
我希望考试会是这样的:
it('should return a state', function () {
spyOn($state, 'go');
expect($state.go).toHaveBeenCalledWith('home.default');
});但是这不起作用,因为它没有被调用,即使我在控制器中知道它是,有什么建议吗?
发布于 2016-09-07 12:51:18
stateMock模块创建新文件。从这个要旨复制代码。https://stackoverflow.com/questions/33761107
复制相似问题