让我们举一个例子:
const listDefinition: any = {
module: "module",
service: "service",
listname: "listname"
};
@Component(...)
class MockTreeExpanderComponent extends TreeExpanderComponent {...}
class MockListConfigurationsService extends ListConfigurationsService {...}
describe('ColumnsListConfigurationsComponent Test cases', () => {
let fixture: ComponentFixture<ColumnsListConfigurationsComponent>;
let component: ColumnsListConfigurationsComponent;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
ComponentToTest,
MockTreeExpanderComponent
],
providers: [
{ provide: TreeListConfigurationService, useClass: MockTreeListConfigurationService }
]
});
fixture = TestBed.createComponent(ComponentToTest);
component = fixture.componentInstance;
component.listDefinition = listDefinition;
fixture.detectChanges();
});
});
如您所见,我有一个模拟组件(MockListViewerGridComponent
)和服务(ListConfigurationsService
),一个配置变量(listDefinition
)以及要测试的灯具和组件
我的问题是关于performance
和test memory management
:
beforeEach
或beforeAll
中创建一个灯具吗?这样,我会提高性能吗?谢谢!
答案 0 :(得分:3)
我对第3点有一个答案
让我与beforeEach
分享我自己的经验。
我们在其中一个应用程序中使用了each unit of work
夹具创建,这花了将近12分钟的时间来构建整个应用程序。对于1st time client side
。
我们必须构建应用程序
2nd time on review branch
3rd time release branch
和
30 min
几乎花了unit of work
(合计)来提交head count of resources
。
这次与beforeEach
(宾果游戏团队)一起使用了多个,我们只在应用程序构建过程中浪费了很多时间。
在某个时候,我们借助this article将beforeAll
替换为providers: [
{ provide: XService, useClass: XServiceStub }
]
,它开始工作了。我们能够将构建时间减少大约80%。
第1点和第2点的简短答案
1)是
2)最好创建单独的模拟服务。 您可以在所有块之前的存根的帮助下为其提供对象,并将所有模拟保存在同一文件夹中。
//server.js
const io=require('socket.io')();
io.on('connect',(s)=>{
s.emit('message',{test:'data'});
setTimeout(()=>{
s.emit('message',{test:'another data'})
},1500)
})
io.listen(8080);
//client.js
<!DOCTYPE html>
<html>
<head>
<script src='http://127.0.0.1:8080/socket.io/socket.io.js'></script>
</head>
<body onload='testConnect()'>
<script>
function testConnect(){
socket=io.connect('http://127.0.0.1:8080');
socket.on('message',(msg)=>{
console.log('received a message');
console.log(msg);
})
}
</script>
</body>
</html>
答案 1 :(得分:1)
在我的项目中,我总是在单独的文件中创建模拟类和测试变量。将它们导入我的规范文件后,我将它们声明为beforeEach
块:
IT
块之前,它都会重置其先前的值引用。我希望这对您有帮助