var App = App || {};
App = {
getDataFromServer: function(){
var self = this,
deferred = $.Deferred(),
requests = [];
requests.push($.getJSON('request/ajax/url/1'));
requests.push($.getJSON('request/ajax/url/2'));
$.when.apply(jQuery, requests).done(function(xhrResponse) {
return deferred.resolve(xhrResponse.result);
});
return deferred;
},
init: function(){
this.getDataFromServer().done(_.bind(function(resp1, resp2) {
// Do the operations which you wanted to do when you
// get a response from Ajax, for example, log response.
}, this));
}
};
App.init();
Это должно работать с JUnit 4:
import static org.junit.Assert.*;
import org.junit.Test;
public class JUnitTest {
/** Have JUnit run this test() method. */
@Test
public void test() throws Exception {
assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3});
}
}
(ответ основан на этой статье wiki )
И это то же самое для старой структуры JUnit (JUnit 3):
import junit.framework.TestCase;
public class JUnitTest extends TestCase {
public void test() {
assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3});
}
}
Обратите внимание на разницу: никакие аннотации и тестовый класс не являются подклассом TestCase (который реализует статические методы assert).
Попробуйте добавить:
import static org.junit.Assert.*;
assertArrayEquals
является статическим методом.
Это может быть полезно, если вы хотите использовать just assertEquals, в зависимости от вашей версии Junit
assertTrue(Arrays.equals(expected, actual));
Если вы пишете тесты стиля JUnit 3.x, которые расширяют TestCase , вам не нужно использовать квалификатор Assert
- TestCase расширяет Assert и поэтому эти методы доступны без квалификатор.
Если вы используете аннотации JUnit 4, избегая базового класса TestCase, тогда необходим определитель Assert
, а также импорт org.junit.Assert
. Вы можете использовать статический импорт, чтобы избежать определения в этих случаях, но некоторые из них считаются неудовлетворительным стилем .