使用Room persistance库进行一些测试,但从@BeforeClass获得一些意外结果。 doc说明这将在所有测试之前仅调用一次该函数,并用于初始化该过程。事实证明,测试函数createcurrencies工作,但虚拟创建货币对不起作用。只有当我删除clearcurrencies(从设置)它按预期工作。从我的测试看来,在每次测试之前执行BeforeClass。有什么想法吗?
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
private static myDb dbh = null;
private static Context context = null;
private static Integer n = 100;
@BeforeClass
public static void setUp() throws Exception {
context = InstrumentationRegistry.getTargetContext();
dbh = myDb.getDatabase(context);
dbh.daoCurrency().clearCurrencies();
}
@Test
public void createCurrencies() {
Integer n=100;
for (Integer i=1; i<=n; i++)
{
Currency c = new Currency();
c.setCode("CUR"+i);
dbh.daoCurrency().addCurrencies(c);
}
List<Currency> currencyList = dbh.daoCurrency().getCurrencies();
assertEquals((Integer) n, (Integer) currencyList.size());
}
@Test
public void createCurrencyPairs() {
List<Currency> currencyList = dbh.daoCurrency().getCurrencies();
assertEquals((Integer) n, (Integer) currencyList.size());
}
@AfterClass
public static void tearDown() throws Exception {
dbh.close();
}
}
答案 0 :(得分:0)
根据我收到的反馈,我重新编写了它,现在它按预期工作了。
DatumRange: // maak tijdelijke tabellen aan met de datum range van de begin en eind datum per patiënt
LOAD DatumNum
Resident Kalender;
BeginEindVerblijf:
LOAD VerblijfStartNum, VerblijfEindNum
Resident Patiënt;
// sla de tabellen op in CSV bestanden om met behulp van een Python script om te zetten naar bezetting
STORE DatumRange INTO [C:\Users\masc\Desktop\Data-analyse voor U-Center in QLikView\Zelfgemaakte dummy dataset U-Center\Bezetting berekenen in Python\NumDateRange.csv] (txt);
STORE BeginEindVerblijf INTO [C:\Users\masc\Desktop\Data-analyse voor U-Center in QLikView\Zelfgemaakte dummy dataset U-Center\Bezetting berekenen in Python\VerblijfStart_VerblijfEind.csv] (txt);
DROP Table DatumRange;
DROP Table BeginEindVerblijf;
EXECUTE python3 BerekenBezetting.py // voer Python script uit om de bezetting te bepalen
Directory;
LOAD DatumNum, Date(DatumNum, 'YYYYMMDD') as JaarMaandDag, AantalPatiënten
FROM [Bezetting berekenen in Python\Bezetting.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);