我刚开始使用Jasmine学习单元测试。我已经浏览了official documentation的茉莉花并在stackoverflow上搜索了很多。请参阅以下代码。
describe('calculator', function () {
var calculator;
beforeEach( function(){
calculator = new myApp.Calculator();
});
describe('sum', function () {
it('1 + 1 should equal 2', function () {
expect(calculator.add(1, 1)).toBe(2);
});
});
describe('subtract', function () {
it('3 - 2 should equal 1', function () {
expect(calculator.subtract(3, 2)).toBe(1);
});
});
});
这里我在beforeEach
块中初始化/创建了Calculator实例。如果我直接在第一个describe
块内写入它而不使用beforeEach
块,它也可以正常工作。
我了解beforeEach
和afterEach
的用户。但是在这种情况下(或者对于任何这样的情况)我真的需要使用beforeEach
没有人更新Calculator
实例,在每个规范中我们只使用{{1}的方法}?如果我使用calculator
,它将在每次测试之前每次创建新实例。但是为什么我总是需要一个新的实例,而我的测试用例都不会改变/更新我的实例?
答案 0 :(得分:0)
如果要在beforeEach
中直接创建计算器实例,而不使用beforeEach
,那么实例将只创建一次(在测试用例开始时运行) )。
但是如果您将放入 div {
overflow-y: scroll;
}
块,那么将为每个单个测试用例运行创建新实例,因此每个测试用例都将有一个全新的实例。
最好为每个特定的测试用例提供一个新的实例。因为测试用例不应该依赖于另一个测试用例是拇指规则。测试用例应始终以独立顺序运行。