我们在多大程度上可以重构单元测试

时间:2014-11-11 14:57:00

标签: javascript angularjs unit-testing nunit jasmine

使用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()吗?

1 个答案:

答案 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来说可能不是一个好问题。