Я написал код для Salesforce, и чтобы выпустить модульные тесты, нужно охватить как минимум 75% .
С чем я сталкиваюсь, так это то, что classOne
, который вызывает методы из classTwo
, также должен покрывать classTwo
модульный тест в пределах classOne , даже если это уже сделано в файле classTwo
. .
Файл MyClassTwo
public with sharing class ClassTwo {
public String method1() {
return 'one';
}
public String method2() {
return 'two';
}
public static testMethod void testMethod1() {
ClassTwo two = new ClassTwo();
String out = two.method1();
system.assertEquals(out, 'one'); //valid
}
public static testMethod void testMethod2() {
ClassTwo two = new ClassTwo();
String out = two.method2();
system.assertEquals(out, 'two'); // valid
}
}
Файл MyClassOne
public with sharing class ClassOne {
public String callClassTwo() {
ClassTwo foo = new ClassTwo();
String something = foo.method1();
return something;
}
public static testMethod void testCallClassTwo() {
ClassOne one = new ClassOne();
String out = one.callClassTwo();
system.assertEquals(out, 'one');
}
}
Результат тестирования MyClassOne не будет возвращать 100% покрытия теста, поскольку в нем говорится, что я не покрывал часть MyClassTwo method2 () внутри файла MyClassOne.
Но я уже написал модульный тест для MyClassTwo внутри файла MyClassTwo, как вы можете видеть.
Значит ли это, что мне нужно скопировать и вставить модульный тест из файла MyClassTwo в MyClassOne?
Это дает мне 100% охват, но это кажется действительно раздражающим и смешным. Имея такой же тест в ClassA и ClassB ....? Я поступаю неправильно или это так?
Сказав, возможно ли создать фиктивный объект в Salesforce? Пока не понимаю, как ...
http://sites.force.com/answers/ideaView?c=09a30000000D9xt&id=087300000007m3fAAA&returnUrl=/apex/ideaList%3Fc%3D09a30000000D9xt%26category%3DApex%2B%2526%2BVisualforce%26p%3D19%26sort%3Dpopular
UDPATE
Я переписал код и обновил выше, на этот раз наверняка тест classOne не вернет 100%, даже если он не вызывает метод classTwo2 ()