我想对一个组件的功能进行单元测试。因此,我需要一个模拟服务(根据角度测试指南)。
这里是我的测试床:
TestBed.configureTestingModule({
declarations: [LanguageSelectorComponent],
providers: [
{ provide: LanguageSelectorService, useValue: userServiceStub }]
});
let userServiceStub: Partial<LanguageSelectorService>;
userServiceStub = {
_languages:
[
{
ID: '',
Name: '',
ImageSrc: ''
},
{
ID: '',
Name: '',
ImageSrc: ''
}
]
};
那么,嘲笑服务价值的正确方法是什么呢?
弗兰克
服务代码:
@Injectable()
export class LanguageSelectorService {
_projectsUrl = 'languages.json';
_configurationtemplatesUrl = 'configurationtemplates.json';
_configurationtemplatePDFUrl = 'configurationtemplatePDF.json';
_baseUrl: string;
public _languages: Observable<ILanguage[]>;
constructor(private _http: HttpClient, private _logger: NGXLogger) {
this._baseUrl = '../../api';
this._languages = this._http
.get<ILanguage[]>(`${this._baseUrl}/${this._projectsUrl}`);
}
getLanguages(): Observable<ILanguage[]> {
return this._languages;
}
}
问题内容: 在Angular中,所有内容似乎都具有陡峭的学习曲线,并且对Angular应用程序进行单元测试绝对不能逃脱这种范例。 当我开始使用TDD和Angular时,我觉得我花了两倍(可能更多)的时间来弄清楚如何测试,甚至花更多的时间来正确地设置测试。但是正如Ben Nadel 在他的博客中所说的那样,角度学习过程存在起伏。他的图表绝对是我在Angular的经历。 但是,随着我在学习Angula
我正在尝试对服务方法进行单元测试。服务方法调用spring数据存储库方法来获取一些数据。我想模拟这个存储库调用,并自己提供数据。如何做到这一点?在Spring Boot文档之后,当我模拟存储库并在测试代码中直接调用存储库方法时,模拟工作正常。但是,当我调用服务方法时,反过来调用存储库方法,mocking就不起作用了。下面是示例代码: 服务级别: 测试等级:
问题内容: 我正在尝试编写业力/茉莉花测试,我想对模拟如何在正在返回诺言的服务上工作进行一些解释。我解释一下我的情况: 我有一个控制器,在其中执行以下调用: 这是我的服务方式: 最后,这是我的单元测试: 我真正想做的是将响应对象({“ elements:…})作为fillMapDatas函数的datas参数。我不了解如何模拟所有服务内容(服务,承诺,然后) 问题答案: 因此,如果您的服务是否按预期
我正在进行一个spring-boot项目,其中我有一个控制器,它调用服务方法并处理输出。 我正在使用spring MockMvc测试web层。在我的测试类中,我用Mockito.when()模拟了服务方法。但是当我调用相应的处理方法时,它不是调用被模仿的服务方法,而是返回一个空响应。 控制器 测试类 返回的响应是 请帮我解决这个问题。提前谢谢!
我想知道我正在构建和测试的服务的方法是否正确。我总是将我的类设计为尽可能的封装。所以,在构建角度服务时,我也用同样的方式构建它们。 下面是我的服务的一个片段: 如上所述,我不允许组件直接访问私有变量,而是使用方法来完成所有交互。这里的问题是单元测试有点混乱。如果我想正确测试我的方法是否正确返回我的中的帖子列表,如果它存在,我必须在为超文本传输协议创建存根值后运行它一次,以确保私有字段设置,然后再次
问题内容: 我有以下情况: controller.js controllerSpec.js 错误: 我也尝试过类似的方法,但没有成功: 我该如何解决?有什么建议? 问题答案: 有两种方法(或肯定有更多方法)。 想象一下这种服务(无论它是工厂都没关系): 使用此控制器: 一种方法是使用要使用的方法创建对象并对其进行监视: 然后,将其作为dep传递给控制器。无需注入服务。那可行。 另一种方法是模拟