使用Jasmine
测试框架时,我遇到了一个代码段,其中expect
写在it()
中调用的子函数中,但不在{{1}中本身。写这个的原因是,他们试图比较类似的对象和他们it()
测试代码并将此refactored
移动到子功能。现在,我们在expect
中没有expect
,而是我们有一个it()
的方法调用。
expect
现在,这种测试代码是否可以开发?我们可以describe("bla bla", function() { //for nunit, junit guys, this is testSuite()
function somefunc() { //this is [test]
//do some stuff and generate object
expect(someObject).toEqual(otherObject); //expect is assert
}
it("some case", function() {
//do some stuff
somefunc();
});
it("some other case", function() {
//do some other stuff
somefunc();
});
});
没有it()
吗?
答案 0 :(得分:0)
我认为以下两个例子都是可读的。如果assertExpected()为otherObject
做了某种设置,那么第一个例子可能更具可读性。
describe("bla bla", function() { //for nunit, junit guys, this is testSuite()
function assertExpected() { //this is [test]
//do some stuff and generate object
expect(someObject).toEqual(otherObject); //expect is assert
}
it("some case", function() {
// Arrange
var someObject;
// Act
someObject = testMethod('foo');
// Assert
assertExpected();
});
it("some other case", function() {
// Arrange
var otherObject, someObject = testMethod('foo');
// Act
someObject = testMethod('foo');
// Assert
assert(someObject(foo)).toEqual(otherObject);
});
});
我认为这里的决定因素应该是决定房屋风格并坚持下去。这里没有明显的赢家,这个问题对于SO来说可能不是一个好问题。