【发布时间】:2019-09-13 21:17:49
【问题描述】:
我正在尝试创建一个 mockService,但我收到一个错误“类型有单独的私有属性声明”,对我来说,声明似乎是相等的并且没有不同,但它说不在错误中。 我在一个注入了服务的组件中做这个测试!!! 是的,我想在这里用模拟测试来测试它。
我的模拟服务代码:
class MockDataservice {
result: any;
constructor(private http: HttpClient){
sendCodeToServer() {
return this.result;
}
}
describe('HomePage', () =>
...
{
...
beforeEach(() => {
...
service = new MockDataservice(http);
component = new HomePage(platform, service, splash, statusbar, barcode, alert, http, loading, router);
原来的服务:
export class DataStorageService {
result: any;
constructor(private http: HttpClient) {
}
sendToServer(data) {
const headers = new HttpHeaders().set('Content-Type', 'application/json');
return new Promise((resolve, reject) => {
this.http.post(endpoindURL, data, { headers: headers })
.toPromise().then((data) => {
resolve(data);
}).catch((err) => {
console.log(err);
reject(err);
});
});
}
}
组件中的服务使用:
export class HomePage {
barcodeScannerOptions: BarcodeScannerOptions;
constructor(private platform: Platform, private **dataStorageService**:
DataStorageService,
private splashScreen: SplashScreen,
private statusBar: StatusBar, private barcodeScanner: BarcodeScanner, public
alertController: AlertController,
private http: HttpClient, private loadingController: LoadingController,
private router: Router) {
this.initializeApp();
this.barcodeScannerOptions = {
showTorchButton: true,
showFlipCameraButton: true
};
}
function doesSomething(){
this.dataStorageService.sendToServer(data).then((res) => {
}
我在 home.spec 文件中的 service 一词中得到了错误
component = new HomePage(platform, service, splash, statusbar, 条形码、警报、http、加载、路由器);
错误是
MockDataservice 不可分配给类型参数 //数据存储服务。类型有单独的声明 私有财产http.ts
【问题讨论】:
-
你能正确格式化你的代码吗?
-
@fjc 现在已经正确格式化了,你可以看看吗?
-
您是否有理由手动实例化被测单元而不是让
Testbed这样做? -
在下面查看我的答案
标签: angular unit-testing ionic-framework